ホームページ  >  記事  >  バックエンド開発  >  非常に実用的な PHP コード スニペット 10 個を推奨します

非常に実用的な PHP コード スニペット 10 個を推奨します

WBOY
WBOYオリジナル
2016-06-13 12:01:40703ブラウズ

非常に実用的な PHP コード スニペット 10 個をおすすめします
PHP で開発する際、非常に便利なメソッドやコード スニペットをいくつか集めておくと、開発作業に大きな利便性をもたらします。今日は、とても使いやすい PHP コード スニペットを 10 個紹介します。気に入っていただければ幸いです。


1. textmagic API を使用してメッセージを送信します
顧客にテキスト メッセージを送信する必要がある場合があります。絶対に textMagic を見てください。この機能を実装するための非常にシンプルな API が提供されます。しかし、無料ではありません。

// Include 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 ) 



2. IP によってソースを決定する
これは、IP によって訪問者を決定するのに役立つ非常に実用的なコード スニペットです。ソース。次のメソッドはパラメータを受け取り、IP の場所を返します。見つからない場合は UNKNOWN が返されます。
function detect_city($ip) {           $default = 'UNKNOWN';           if (!is_string($ip) || strlen($ip) < 1 || $ip == &#39;127.0.0.1&#39; || $ip == &#39;localhost&#39;)              $ip = &#39;8.8.8.8&#39;;           $curlopt_useragent = &#39;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)&#39;;           $url = &#39;http://ipinfodb.com/ip_locator.php?ip=&#39; . 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('{<li>City : ([^<]*)</li>}i', $content, $regs) )  {              $city = $regs[1];          }          if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) )  {              $state = $regs[1];          }           if( $city!='' && $state!='' ){            $location = $city . ', ' . $state;            return $location;          }else{            return $default;          }  } 


3. 任意の Web ページのソース コードを表示します
任意の Web ページのソース コードを行番号付きで表示しますか?これは簡単なコード スニペットです。2 行目の URL を変更するだけです
<?php // display source code    $lines = file(&#39;http://google.com/&#39;);    foreach ($lines as $line_num => $line) {        // loop thru each line and prepend line numbers        echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";    }   ?>



4. サーバーが HTTPS 接続であるかどうかを確認します
コード実行環境が HTTPS サーバーであるかどうかを判断する必要がありますか?以下のコードはこれを実現するのに役立ちます。非常に簡単です。
if ($_SERVER['HTTPS'] != "on") {        echo "This is not HTTPS";    }else{        echo "This is HTTPS";    }    



5. テキスト内に Facebook のファン数を表示します
自分のファンの数を確認したいフェイスブック?以下のコードはこれを実現するのに役立ちます。
function fb_fan_count($facebook_name){        // Example: https://graph.facebook.com/digimantra        $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name));        echo $data->likes;    }       




6. 画像のメインカラーを決定する
次のコードは非常に実用的で、ヘルプ 画像内の主要な色を特定し、任意の画像を分析できます。
$i = imagecreatefromjpeg("image.jpg");        for ($x=0;$x<imagesx($i);$x++) {        for ($y=0;$y<imagesy($i);$y++) {            $rgb = imagecolorat($i,$x,$y);            $r   = ($rgb >> 16) & 0xFF;            $g   = ($rgb >>  & 0xFF;            $b   = $rgb & 0xFF;                $rTotal += $r;            $gTotal += $g;            $bTotal += $b;            $total++;        }    }        $rAverage = round($rTotal/$total);    $gAverage = round($gTotal/$total);    $bAverage = round($bTotal/$total);    




7. メモリ使用量を知る
スクリプトを最適化するには、次のことを知る必要があります。サーバー上の RAM の使用量。このコード スニペットは、メモリ使用量を理解し、初期、最終、ピークの使用量を出力するのに役立ちます。
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&#39;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   */    



8. gzcompress() を使用してデータを圧縮する
非常に長い文字列を使用する場合は、gzcompress を使用できます。 () ) 文字列を圧縮するメソッド。解凍するには、gzuncompress()を使用します。コードは次のとおりです。
$string =    "Lorem ipsum dolor sit amet, consectetur    adipiscing elit. Nunc ut elit id mi ultricies    adipiscing. Nulla facilisi. Praesent pulvinar,    sapien vel feugiat vestibulum, nulla dui pretium orci,    non ultricies elit lacus quis ante. Lorem ipsum dolor    sit amet, consectetur adipiscing elit. Aliquam    pretium ullamcorper urna quis iaculis. Etiam ac massa    sed turpis tempor luctus. Curabitur sed nibh eu elit    mollis congue. Praesent ipsum diam, consectetur vitae    ornare a, aliquam a nunc. In id magna pellentesque    tellus posuere adipiscing. Sed non mi metus, at lacinia    augue. Sed magna nisi, ornare in mollis in, mollis    sed nunc. Etiam at justo in leo congue mollis.    Nullam in neque eget metus hendrerit scelerisque    eu non enim. Ut malesuada lacus eu nulla bibendum    id euismod urna sodales. ";        $compressed = gzcompress($string);        echo "Original size: ". strlen($string)."\n";    /* prints   Original size: 800   */        echo "Compressed size: ". strlen($compressed)."\n";    /* prints   Compressed size: 418   */        // getting it back    $original = gzuncompress($compressed); 




9. PHP を使用して Whois クエリを実行します
の Whois 情報を取得する必要がある場合指定されたドメイン名、なぜ PHP を使用しないのですか?以下のコードは誰でも役立ちます。
function whois_query($domain) {            // fix the domain name:        $domain = strtolower(trim($domain));        $domain = preg_replace(&#39;/^http:\/\//i&#39;, &#39;&#39;, $domain);        $domain = preg_replace(&#39;/^www\./i&#39;, &#39;&#39;, $domain);        $domain = explode(&#39;/&#39;, $domain);        $domain = trim($domain[0]);            // split the TLD from domain name        $_domain = explode(&#39;.&#39;, $domain);        $lst = count($_domain)-1;        $ext = $_domain[$lst];            // You find resources and lists        // like these on wikipedia:        //        // http://de.wikipedia.org/wiki/Whois        //        $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;    }  



10. PHP エラーを表示せず、代わりにメールを送信します
表示したくない場合は、 PHP のページエラーでは、メールでエラー情報を取得することもできます。以下のコードはこれを実現するのに役立ちます。
<?php        // Our custom error handler    function nettuts_error_handler($number, $message, $file, $line, $vars){        $email = "            <p>An error ($number) occurred on line            <strong>$line</strong> and in the <strong>file: $file.</strong>            <p> $message </p>";            $email .= "<pre class="brush:php;toolbar:false">" . print_r($vars, 1) . "
"; $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Email the error to someone... error_log($email, 1, '[email protected]', $headers); // Make sure that you decide how to respond to errors (on the user's side) // Either echo an error message, or kill the entire project. Up to you... // The code below ensures that we only "die" if the error was more than // just a NOTICE. if ( ($number !== E_NOTICE) && ($number < 2048) ) { die("There was an error. Please try again later."); } } // We should use our custom function to handle errors. set_error_handler('nettuts_error_handler'); // Trigger an error... (var doesn't exist) echo $somevarthatdoesnotexist;?>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。