ホームページ  >  記事  >  バックエンド開発  >  そのまま使って超実践的なPHPコードスニペット(2)_PHPチュートリアル

そのまま使って超実践的なPHPコードスニペット(2)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:35:43759ブラウズ

すべてのプログラマーや開発者は、特に PHP 開発者が Web ページのコーディングやアプリケーションの作成に何時間も費やしている場合、お気に入りのコードのスニペットについて話し合うのが大好きです。コーディング時間を節約するために、著者は開発者の作業効率の向上に役立つ、より実用的なコード スニペットをいくつか集めました。 >>> クリックして PHP コード スニペット (1) を表示します

そのまま使って超実践的なPHPコードスニペット(2)_PHPチュートリアル

1) PHP を使用した Whois クエリ—PHP を使用して Whois リクエストを取得します

このコードを使用すると、特定のドメイン名で Whois 情報を取得できます。ドメイン名をパラメータとして取得し、すべてのドメイン名に関する情報を表示します。


 
  1. 関数 whois_query($domain) {
  2.   
  3.     // ドメイン名を修正します:
  4.     $domain = strto lower(trim($domain));  
  5.     $domain = preg_replace('/^http:///i', '', $domain);  
  6.     $domain = preg_replace('/^www./i', '', $domain);  
  7.     $domain = explode('/', $domain);  
  8.     $domain = trim($domain[0]);  
  9.   
  10.     // ドメイン名から TLD を分割します
  11.     $_domain = explode('.', $domain);  
  12.     $lst = count($_domain)-1;  
  13.     $ext = $_domain[$lst];  
  14.   
  15.     // リソースとリストが見つかります
  16.     //ウィキペディアで次のように:
  17.     //
  18.     // http://de.wikipedia.org/wiki/Whois  
  19.     //
  20.     $servers = array(
  21.         「ビジネス」 => 「whois.neulevel.biz」、
  22.         「com」 => 「whois.internic.net」、
  23.         「私たち」 => 「whois.nic.us」、
  24.         「コープ」 => 「whois.nic.coop」、
  25.         「情報」 => 「whois.nic.info」、
  26.         「名前」 => 「whois.nic.name」、
  27.         「ネット」 => 「whois.internic.net」、
  28.         「政府」 => 「whois.nic.gov」、
  29.         「教育」 => 「whois.internic.net」、
  30.         「ミル」 => 「rs.internic.net」、
  31.         "int" => 「whois.iana.org」、
  32.         「ac」 => 「whois.nic.ac」、
  33.         "ae" => 「whois.uaenic.ae」、
  34.         「で」 => 「whois.ripe.net」、
  35.         「au」 => 「whois.aunic.net」、
  36.         「である」 => 「whois.dns.be」、
  37.         "bg" => 「whois.ripe.net」、
  38.         "br" => 「whois.registro.br」、
  39.         "bz" => 「whois.belizenic.bz」、
  40.         「ca」 => 「whois.cira.ca」、
  41.         「cc」 => 「whois.nic.cc」、
  42.         "ch" => 「whois.nic.ch」、
  43.         "cl" => 「whois.nic.cl」、
  44.         「cn」 => 「whois.cnnic.net.cn」、
  45.         "cz" => 「whois.nic.cz」、
  46.         「で」 => 「whois.nic.de」、
  47.         "fr" => 「whois.nic.fr」、
  48.         「ふ」 => 「whois.nic.hu」、
  49.         「つまり」 => 「whois.domainregistry.ie」、
  50.         「イル」 => 「whois.isoc.org.il」、
  51.         「で」 => 「whois.ncst.ernet.in」、
  52.         「ir」 => 「whois.nic.ir」、
  53.         「MC」 => 「whois.ripe.net」、
  54.         「に」 => 「whois.tonic.to」、
  55.         「テレビ」 => 「whois.tv」、
  56.         「る」 => 「whois.ripn.net」、
  57.         "組織" => 「whois.pir.org」、
  58.         「エアロ」 => 「whois.information.aero」、
  59.         「nl」 => 「whois.domain-registry.nl」
  60.     );  
  61.   
  62.     if (!isset($servers[$ext])){
  63.         die('エラー: 一致するニックサーバーが見つかりません!');  
  64.     }
  65.   
  66.     $nic_server = $servers[$ext];  
  67.   
  68.     $output = '';  
  69.   
  70.     // whois サーバーに接続します:
  71.     if ($conn = fsockopen ($nic_server, 43)) {
  72.         fputs($conn, $domain."rn");  
  73.         while(!feof($conn)) {
  74.             $output .= fgets($conn,128);  
  75.         }
  76.         fclose($conn);  
  77.     }
  78.     else { die('エラー: ' . $nic_server . ' に接続できませんでした!'); }
  79.   
  80.     $output を返します。  
  81. }

2) TextMagic API を使用した PHP でのテキスト メッセージング ——TextMagic API を使用する 获取PHP テスト情報

TextMagic には高コア API が組み込まれており、SMS を携帯電話に送信できます。この API は有料です。
 

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

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

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

 


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

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

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


  1.  $line) {   
  2.     // loop thru each line and prepend line numbers  
  3.     echo "Line #{$line_num} : " . htmlspecialchars($line) . "  
  4. \n";  
  5. }  

 

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

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

 


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

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

 

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

 


 
  1. function detect_city($ip) {  
  2.   
  3.         $default = 'UNKNOWN';  
  4.   
  5.         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,  
  6.             CURLOPT_HEADER      => 0,  
  7.             CURLOPT_RETURNTRANSFER  => 1,  
  8.             CURLOPT_USERAGENT   => $curlopt_useragent,  
  9.             CURLOPT_URL       => $url,  
  10.             CURLOPT_TIMEOUT         => 1,  
  11.             CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],  
  12.         );  
  13.   
  14.         curl_setopt_array($ch, $curl_opt);  
  15.   
  16.         $content = curl_exec($ch);  
  17.   
  18.         if (!is_null($curl_info)) {  
  19.             $curl_info = curl_getinfo($ch);  
  20.         }  
  21.   
  22.         curl_close($ch);  
  23.   
  24.         if ( preg_match('{  
  25. City : ([^<]*)  
  26. }i’, $content, $regs) ) { $city = $regs[1]; } if ( preg_match(‘{  
  27.   
  28. State/Province : ([^<]*)  
  29.    
  30. }i’, $content, $regs) ) { $state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘, ‘ . $state; return $location; }else{ return $default; } }  

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

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

 


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

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


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

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

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/742439.htmlTechArticle每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。