直接拿来用 九个超实用的PHP代码片段(二)

每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性。为了节约编码时间,笔者收集了一些较为实用的代码片段,帮助开发者提高工作效率。>>>

  1) Whois query using PHP ——利用PHP获取Whois请求 

  利用这段代码,在特定的域名里可获得whois信息。把域名名称作为参数,并显示所有域名的相关信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
function whois_query( $domain ) {
 
     // fix the domain name:
     $domain = strtolower (trim( $domain ));
     $domain = preg_replace( '/^http:\/\//i' , '' , $domain );
     $domain = preg_replace( '/^www\./i' , '' , $domain );
     $domain = explode ( '/' , $domain );
     $domain = trim( $domain [0]);
 
     // split the TLD from domain name
     $_domain = explode ( '.' , $domain );
     $lst = count ( $_domain )-1;
     $ext = $_domain [ $lst ];
 
     // You find resources and lists
     // like these on wikipedia:
     //
     //
     $servers = array (
         "biz" => "whois.neulevel.biz" ,
         "com" => "whois.internic.net" ,
         "us" => "whois.nic.us" ,
         "coop" => "whois.nic.coop" ,
         "info" => "whois.nic.info" ,
         "name" => "whois.nic.name" ,
         "net" => "whois.internic.net" ,
         "gov" => "whois.nic.gov" ,
         "edu" => "whois.internic.net" ,
         "mil" => "rs.internic.net" ,
         "int" => "whois.iana.org" ,
         "ac" => "whois.nic.ac" ,
         "ae" => "whois.uaenic.ae" ,
         "at" => "whois.ripe.net" ,
         "au" => "whois.aunic.net" ,
         "be" => "whois.dns.be" ,
         "bg" => "whois.ripe.net" ,
         "br" => "whois.registro.br" ,
         "bz" => "whois.belizenic.bz" ,
         "ca" => "whois.cira.ca" ,
         "cc" => "whois.nic.cc" ,
         "ch" => "whois.nic.ch" ,
         "cl" => "whois.nic.cl" ,
         "cn" => "whois.cnnic.net.cn" ,
         "cz" => "whois.nic.cz" ,
         "de" => "whois.nic.de" ,
         "fr" => "whois.nic.fr" ,
         "hu" => "whois.nic.hu" ,
         "ie" => "whois.domainregistry.ie" ,
         "il" => "whois.isoc.org.il" ,
         "in" => "whois.ncst.ernet.in" ,
         "ir" => "whois.nic.ir" ,
         "mc" => "whois.ripe.net" ,
         "to" => "whois.tonic.to" ,
         "tv" => "whois.tv" ,
         "ru" => "whois.ripn.net" ,
         "org" => "whois.pir.org" ,
         "aero" => "whois.information.aero" ,
         "nl" => "whois.domain-registry.nl"
     );
 
     if (!isset( $servers [ $ext ])){
         die ( 'Error: No matching nic server found!' );
     }
 
     $nic_server = $servers [ $ext ];
 
     $output = '' ;
 
     // connect to whois server:
     if ( $conn = fsockopen ( $nic_server , 43)) {
         fputs ( $conn , $domain . "\r\n" );
         while (! feof ( $conn )) {
             $output .= fgets ( $conn ,128);
         }
         fclose( $conn );
     }
     else { die ( 'Error: Could not connect to ' . $nic_server . '!' ); }
 
     return $output ;
}

  2) Text messaging with PHP using the TextMagic API ——使用TextMagic API 获取PHP Test信息

  TextMagic引入强大的核心API,可轻松将SMS发送到手机。该API是需要付费。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
the TextMagic PHP lib
require ( 'textmagic-sms-api-php/TextMagicAPI.php' );
 
// Set the username and password information
$username = 'myusername' ;
$password = 'mypassword' ;
 
// Create a new instance of TM
$router = new TextMagicAPI( array (
     'username' => $username ,
     'password' => $password
));
 
// Send a text message to '999-123-4567'
$result = $router ->send( 'Wake up!' , array (9991234567), true);
 
// result:  Result is: Array ( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => Wake up! [parts_count] => 1 )

  3) Get info about your memory usage——获取内存使用率

  这段代码帮助你获取内存使用率。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
echo "Initial: " .memory_get_usage(). " bytes \n" ;
/* prints
Initial: 361400 bytes
*/
 
// let's use up some memory
for ( $i = 0; $i < 100000; $i ++) {
     $array []= md5( $i );
}
 
// let's remove half of the array
for ( $i = 0; $i < 100000; $i ++) {
     unset( $array [ $i ]);
}
 
echo "Final: " .memory_get_usage(). " bytes \n" ;
/* prints
Final: 885912 bytes
*/
 
echo "Peak: " .memory_get_peak_usage(). " bytes \n" ;
/* prints
Peak: 13687072 bytes
*/

  4) Display source code of any webpage——查看任意网页源代码

  如果你想查看网页源代码,那么只需更改第二行的URL,源代码就会在网页上显示出。

?
1
2
3
4
5
<?php // display source code $lines = file('http://google.com/'); foreach ($lines as $line_num => $line) {
     // loop thru each line and prepend line numbers
     echo "Line #{$line_num} : " . htmlspecialchars( $line ) . "
\n";
}

  5) Create data uri’s——创建数据uri

通过使用此代码,你可以创建数据Uri,这对在HTML/CSS中嵌入图片非常有用,可帮助节省HTTP请求。

?
1
2
3
4
5
function data_uri( $file , $mime ) {
   $contents = file_get_contents ( $file );
   $base64 = base64_encode ( $contents );
   echo "data:$mime;base64,$base64" ;
}

  6) Detect location by IP——通过IP检索出地理位置

  这段代码帮助你查找特定的IP,只需在功能参数上输入IP,就可检测出位置。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function detect_city( $ip ) {
 
         $default = 'UNKNOWN' ;
 
         if (! is_string ( $ip ) || strlen ( $ip ) < 1 || $ip == '127.0.0.1' || $ip == 'localhost' )             $ip = '8.8.8.8' ;         $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)' ;                  $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode( $ip );         $ch = curl_init();                  $curl_opt = array (             CURLOPT_FOLLOWLOCATION  => 1,
             CURLOPT_HEADER      => 0,
             CURLOPT_RETURNTRANSFER  => 1,
             CURLOPT_USERAGENT   => $curlopt_useragent ,
             CURLOPT_URL       => $url ,
             CURLOPT_TIMEOUT         => 1,
             CURLOPT_REFERER         => 'http://' . $_SERVER [ 'HTTP_HOST' ],
         );
 
         curl_setopt_array( $ch , $curl_opt );
 
         $content = curl_exec( $ch );
 
         if (! is_null ( $curl_info )) {
             $curl_info = curl_getinfo( $ch );
         }
 
         curl_close( $ch );
 
         if ( preg_match('{
City : ([^<]*)
}i’, $content , $regs ) ) { $city = $regs [1]; } if ( preg_match(‘{
 
State/Province : ([^<]*)
  
}i’, $content , $regs ) ) { $state = $regs [1]; } if ( $city !=” && $state !=” ){ $location = $city . ‘, ‘ . $state ; return $location ; } else { return $default ; } }

  7) Detect browser language——查看浏览器语言

  检测浏览器使用的代码脚本语言。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function get_client_language( $availableLanguages , $default = 'en' ){
     if (isset( $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ])) {
         $langs = explode ( ',' , $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ]);
 
         foreach ( $langs as $value ){
             $choice = substr ( $value ,0,2);
             if (in_array( $choice , $availableLanguages )){
                 return $choice ;
             }
         }
     }
     return $default ;
}

  8) Check if server is HTTPS——检测服务器是否是HTTPS

?
1
2
3
4
5
if ( $_SERVER [ 'HTTPS' ] != "on" ) {
     echo "This is not HTTPS" ;
} else {
     echo "This is HTTPS" ;
}

  9) Generate CSV file from a PHP array——在PHP数组中生成.csv 文件

?
1
2
3
4
5
6
7
8
9
10
11
12
function generateCsv( $data , $delimiter = ',' , $enclosure = '"' ) {
    $handle = fopen ( 'php://temp' , 'r+' );
    foreach ( $data as $line ) {
            fputcsv ( $handle , $line , $delimiter , $enclosure );
    }
    rewind ( $handle );
    while (! feof ( $handle )) {
            $contents .= fread ( $handle , 8192);
    }
    fclose( $handle );
    return $contents ;
}

  英文出自:Designzum

转载于:https://www.cnblogs.com/rrsina/p/4187265.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值