おすすめの超実践的なPHPコードスニペット
PHPを使って開発する際に、非常に便利なメソッドやコードスニペットを集めておくと、開発作業に大きな利便性をもたらします。今日は、とても使いやすい PHP コード スニペットを 10 個紹介します。気に入っていただければ幸いです。
顧客にテキスト メッセージを送信する必要がある場合は、textMagic をぜひ検討してください。この機能を実装するための非常にシンプルな API が提供されます。しかし、無料ではありません。
1
2
5 8 9
10
11
12
15 | // TextMagic PHP lib を含めます require ( 'textmagic -sms-api-php/TextMagicAPI.php' ); = 'myusername' ;コード コード><div class="linenumber6index5 alt1">
<code class="php variable">$password = 'mypassword' ; // TM の新しいインスタンスを作成します $router = 新しい TextMagicAPI( 配列( コード ><code class="php string">'ユーザー名' => $username , 'パスワード ' => $password )); = $router ->send( 「ウェークアップ!」 , array (9991234567), true); // 結果: 結果は次のとおりです: Array ( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => 起きてください! [parts_count] => 1 ) |
これは、IP によって訪問者のソースを決定するのに役立つ非常に実用的なコード スニペットです。次のメソッドはパラメータを受け取り、IP の場所を返します。見つからない場合は UNKNOWN が返されます。
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
|
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( '{<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 ; } }
|
任意の Web ページのソース コードを行番号付きで表示しますか?これは簡単なコード スニペットです。2 行目の URL を変更するだけです。
1
2
3
4
6
|
<?php // ソースコードを表示< /code></p><div class="linenumber2index1alt1"><code class="php variable">$lines = file( 'http://google.com/' ); foreach ( $lines as $line_num => $line<code class="php plain">) { // 各行をループし、行番号を先頭に追加します
echo "Line #<b>{$line_num}</b> : " htmlspecialchars( $line ) "<br> n" ; } |
1 2
5 |
Facebook に何人のファンがいるかを確認したいですか?以下のコードはこれを実現するのに役立ちます。
1
2
5 |
次のコードは非常に実用的で、任意の画像を分析できます。
1 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$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 );
|
スクリプトを最適化するには、サーバー上の RAM の使用量を知る必要があります。このコード スニペットは、メモリ使用量を理解し、初期、最終、ピークの使用量を出力するのに役立ちます。
1
2<🎜> 5<🎜> 8<🎜> 9<🎜> 10<🎜> 11<🎜> 12<🎜> 15<🎜> 19<🎜> 20<🎜> 21<🎜> 22<🎜> | echo "Initial: " .memory_get_usage(). " bytes n" ; <🎜>/* 出力 <🎜>初期: 361400バイト <🎜>*/</ code><🎜><div class="linenumber5index4alt2"><🎜><divclass="linenumber6index5alt1"><code class="php comments">// メモリを使い切ってみましょう <🎜>for ( $i = 0; $i < ; $i ) { <🎜>< code class="php space"> $array []= md5( $i ); <🎜>}< /code><🎜><div class="linenumber10index9alt1"><🎜><divclass="linenumber11index10alt2"><code class="php comments">// 配列の半分を削除しましょう</ code><🎜><div class="linenumber12index11alt1"><code class="php キーワード">for ( $i = 0; $i < ; 100000; $i ) { <🎜> unset( $array [ $i ]); <🎜>} <🎜><🎜> "Final: " .memory_get_usage(). " bytes n" ; <🎜>/* prints <🎜>*/ <🎜><🎜> "ピーク: " .memory_get_peak_usage(). " バイト n" ; <🎜>/* prints< /code><🎜><div class="linenumber23index22alt2"><codeclass="php comments">ピーク: 13687072 バイト <🎜>*/ <🎜><🎜> |
非常に長い文字列を使用する場合は、gzcompress() メソッドを使用して文字列を圧縮できます。解凍するには、gzuncompress()を使用します。コードは次のとおりです。
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 | $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 ); |
指定したドメイン名の Whois 情報を取得する必要がある場合は、PHP を使用してみてはいかがでしょうか。以下のコードは誰でも役立ちます。
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: // // 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 . "rn" ); while (! feof ( $conn )) { $output .= fgets ( $conn ,128); } fclose( $conn ); } else { die ( 'Error: Could not connect to ' . $nic_server . '!' ); } return $output ; } |
ページに PHP エラーを表示したくない場合は、電子メールでエラー情報を取得することもできます。以下のコードはこれを実現するのに役立ちます。
1 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|