ホームページ  >  記事  >  バックエンド開発  >  超実践的な PHP コード スニペット、_PHP チュートリアル

超実践的な PHP コード スニペット、_PHP チュートリアル

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

超実践的な PHP コード スニペット、

1. メールが読まれたかどうかを確認します

メールを送信するとき、そのメールが相手に読まれたかどうか知りたい場合があります。これは、相手の IP アドレスによってレコードが読み取られた実際の日付と時刻を表示する非常に興味深いコードのスニペットです。

('H:i:s',
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 <? error_reporting(0); Header("Content-Type: image/jpeg");   //Get IP if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; }   //時間<code class="php comments">//Time $actual_time<code class="php variable">$actual_time = time(); = time();<code class="php variable">$actual_day = date('Y.m.d', $actual_time); $actual_day<code class="php variable">$actual_day_chart = date('d/m/y', $actual_time); = <code class="php variable">$actual_hour = date('H:i:s', $actual_time);date<code class="php comments">//GET Browser(<code class="php variable">$browser = $_SERVER['HTTP_USER_AGENT'];'Y.m.d'<code class="php spaces"> , <code class="php comments">//LOG$actual_time<code class="php variable">$myFile = "log.txt";);<code class="php variable">$fh = fopen($myFile, 'a+'); $actual_day_chart<code class="php variable">$stringData = $actual_day . ' ' . $actual_hour . ' ' . $ip . ' ' . $browser . ' ' . "rn"; = <code class="php plain">fwrite($fh, $stringData);date<code class="php plain">fclose($fh);(<code class="php comments">//Generate Image (Es. dimesion is 1x1)'d/m/y'<code class="php variable">$newimage = ImageCreate(1,1);, <code class="php variable">$grigio = ImageColorAllocate($newimage,255,255,255);$actual_time<code class="php plain">ImageJPEG($newimage););<code class="php plain">ImageDestroy($newimage); $actual_hour<code class="php spaces"> = <code class="php plain">?>date
$actual_time🎜);🎜   //ブラウザを取得🎜 $browser🎜 = 🎜$_SERVER🎜[🎜'HTTP_USER_AGENT'🎜];🎜 🎜  //LOG🎜 $myFile🎜 = 🎜"log.txt"🎜;🎜 $fh🎜 = 🎜fopen🎜(🎜$myFile🎜, 🎜'a+'🎜);🎜 $stringData🎜 = 🎜$actual_day🎜 。 🎜' '🎜 。 🎜$actual_hour🎜 。 🎜' '🎜 。 🎜$ip🎜 。 🎜' '🎜 。 🎜$browser🎜 。 🎜' '🎜 。 🎜"rn"🎜;🎜 fwrite(🎜$fh🎜, 🎜$stringData🎜);🎜 fclose(🎜$fh🎜);🎜   //画像を生成 (寸法は 1x1)🎜 $newimage🎜 = ImageCreate(1,1);🎜 $grigio🎜 = ImageColorAllocate(🎜$newimage🎜,255,255,255); 🎜 ImageJPEG(🎜$newimage🎜);🎜 ImageDestroy(🎜$newimage🎜);🎜 🎜  ?>🎜 🎜 🎜 🎜 🎜

ソースコード

2. ネットユーザーからキーワードを抽出します

優れたコードスニペットを使用すると、Webページからキーワードを簡単に抽出できます。

1 2 3 4 5 6 7 8 9 10 $meta = get_meta_tags('http://www.emoticode.net/'); $keywords = $meta['keywords']; // Split keywords $keywords = explode(',', $keywords ); // Trim them $keywords = array_map( 'trim', $keywords ); // Remove empty values $keywords = array_filter( $keywords );print_r( $keywords );

ソースコード

3. ページ上のすべてのリンクを検索します

DOM を使用すると、任意のページから簡単にリンクを取得できます。コード例は次のとおりです。

1 2 3 4 5 6 7 8 9 10 11 12 13 14

ソースコード

4. URLを自動変換してハイパーリンクにジャンプします

WordPress では、URL を自動的に変換してハイパーリンクされたページにジャンプしたい場合、組み込み関数 make_clickable() を使用してこの操作を実行できます。 WordPress の外部でプログラムを操作したい場合は、wp-includes/formatting.php ソース コードを参照できます。

$html = file_get_contents('http://www.example.com'); $dom = new DOMDocument();@$dom->loadHTML($html); // grab all the on the page $xpath = new DOMXPath($dom);$hrefs = $xpath->evaluate("/html/body//a"); for ($i = 0; $i < $hrefs->length; $i++) {        $href = $hrefs->item($i);        $url = $href->getAttribute('href');        echo $url.'<br />'; }
$ret= preg_replace_callback(
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 function _make_url_clickable_cb($matches) {     $ret = '';     $url = $matches[2];        if ( empty($url) )         return $matches[0];     // removed trailing [.,;:] from URL     if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {         $ret = substr($url, -1);         $url = substr($url, 0, strlen($url)-1);     }     return $matches[1] . "<a href="$url" rel="nofollow">$url</a>" . $ret; } <code class="php spaces">   function<code class="php keyword">function _make_web_ftp_clickable_cb($matches) { <code class="php spaces">    $ret = '';_make_web_ftp_clickable_cb(    $dest = $matches[2];$matches<code class="php spaces">    $dest = 'http://' . $dest; ) {<code class="php spaces">    if ( empty($dest) ) <code class="php spaces">        return $matches[0];$ret<code class="php spaces">    // removed trailing [,;:] from URL <code class="php spaces">    if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) {= <code class="php spaces">        $ret = substr($dest, -1);''<code class="php spaces">        $dest = substr($dest, 0, strlen($dest)-1);    };<code class="php spaces">    return $matches[1] . "<a href="$dest" rel="nofollow">$dest</a>" . $ret; <code class="php plain">}$dest<code class="php spaces">  function _make_email_clickable_cb($matches) {= <code class="php spaces">    $email = $matches[2] . '@' . $matches[3];$matches<code class="php spaces">    return $matches[1] . "<a href="mailto:$email">$email</a>";[2];🎜 🎜$dest🎜 🎜= 🎜'http://'🎜 🎜。 🎜$dest🎜🎜;🎜 🎜  🎜if🎜 🎜( 🎜empty🎜🎜(🎜$dest🎜) 🎜))🎜 🎜return🎜 $matches🎜🎜[0];🎜 🎜// URL から末尾の [,;:] を削除しました🎜 🎜if🎜 🎜( in_array(🎜substr🎜🎜(🎜$ dest🎜🎜, -1), 🎜array🎜🎜(🎜'.'🎜🎜, 🎜', '🎜🎜, 🎜';'🎜🎜, 🎜':'🎜🎜)) === true ) {🎜 🎜$ret🎜 🎜= 🎜substr🎜🎜(🎜$dest 🎜🎜、-1);🎜 🎜$dest🎜 🎜= 🎜substr🎜🎜(🎜$dest 🎜🎜, 0, 🎜strlen🎜🎜(🎜$dest🎜🎜)-1);🎜 🎜🎜}🎜 🎜return🎜 $matches🎜🎜[1] 。 🎜"<a href="$dest" rel="nofollow">$dest</a>"🎜 🎜。 🎜$ret🎜🎜;🎜 🎜}🎜 🎜  関数🎜 🎜_make_email_clickable_cb(🎜$matches🎜🎜) {🎜 🎜$email🎜 🎜= 🎜$matches🎜🎜[2] 。 🎜'@'🎜 🎜。 🎜$matches🎜🎜[3];🎜 🎜return🎜 $matches🎜🎜[1] 。 🎜"<a href="mailto:$email">$email</a>"🎜🎜;🎜 🎜} <code class="php spaces">   function<code class="php keyword">function make_clickable($ret) { make_clickable(<code class="php spaces">    $ret = ' ' . $ret;$ret<code class="php spaces">    // in testing, using arrays here was found to be faster) {<code class="php spaces">    $ret = preg_replace_callback('#([s>])([w]+?://[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is', '_make_url_clickable_cb', $ret); <code class="php spaces">    $ret = preg_replace_callback('#([s>])((www|ftp).[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is', '_make_web_ftp_clickable_cb', $ret);$ret<code class="php spaces">    $ret = preg_replace_callback('#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret); = <code class="php spaces"> ' '<code class="php spaces">    // this one is not in an array because we need it to run last, for cleanup of accidental links within links 。 <code class="php spaces">    $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "</a>", $ret);$ret<code class="php spaces">    $ret = trim($ret);;<code class="php spaces">    return $ret; <code class="php plain">}// テストでは、ここで配列を使用した方が速いことが判明しました
'#([s> ])([w]+?://[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is'<p><code class="php plain">,

'_make_url_clickable_cb'<h3><code class="php plain">, $ret<p><code class="php plain">);

<table border="0" cellspacing="0" cellpadding="0"><code class="php variable">$ret<tbody> <code class="php plain">= preg_replace_callback(<tr><code class="php string">'#([s> ])((www|ftp).[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is'<td class="gutter"><code class="php plain">, '_make_web_ftp_clickable_cb'<td class="code"><code class="php plain">, <code class="php keyword">function data_uri($file, $mime) {$ret<code class="php spaces">  $contents=file_get_contents($file););<code class="php spaces">  $base64=base64_encode($contents); <code class="php spaces">  echo "data:$mime;base64,$base64";$ret<code class="php plain">} = preg_replace_callback(
'#([s> ])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i'
'_make_email_clickable_cb'
、🎜$ret🎜);🎜 🎜  🎜// これは、リンク内の誤ったリンクをクリーンアップするために最後に実行する必要があるため、配列にはありません🎜 🎜$ret🎜 = preg_replace(🎜"#(]+?>|>))]+?>([^>]+?)#i"🎜 、🎜"$1$3"🎜、🎜 $ret🎜);🎜 🎜$ret🎜 =rim(🎜$ret🎜);🎜 🎜return🎜 $ret🎜;🎜 }🎜 🎜 🎜 🎜 🎜 🎜 ソースコード🎜 🎜 五、创建データURL🎜 🎜 データ URL は、大量の HTTP リクエストを回避するために、HTML/CSS/JS に直接挿入できます。 🎜 🎜 🎜 🎜 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.サーバーからリモート画像をダウンロードして保存します

Webサイトを構築する際、リモートサーバーから特定の画像をダウンロードして自分のサーバーに保存するという操作がよく行われます。コードは次のとおりです:

1 2 $image = file_get_contents('http://www.url.com/image.jpg'); file_put_contents('/images/image.jpg', $image); //Where to save the image

ソースコード

7. 削除 Microsoft Word HTML タグを削除します

Microsoft Wordを使用すると、フォント、スパン、スタイル、クラスなど、多くのタグを作成します。これらのタグは Word 自体では非常に便利ですが、Word から Web ページに貼り付けると、無駄なタグがたくさんあることがわかります。したがって、次のコードは、不要な Word HTML タグをすべて削除するのに役立ちます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function cleanHTML($html) { /// <summary> /// Removes all FONT and SPAN tags, and all Class and Style attributes. /// Designed to get rid of non-standard Microsoft Word HTML tags. /// </summary> // start by completely removing all unwanted tags$html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>","",$html);// then run another pass over the html (twice), removing unwanted attributes$html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<1>",$html); $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<1>",$html);return $html }

ソースコード

8. ブラウザ言語を検出します

ウェブサイトに複数の言語がある場合、このコードをデフォルト言語として使用してブラウザ言語を検出できます。このコードは、ブラウザ クライアントが使用する初期言語を返します。

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; }

ソースコード

9. Facebookのファン数を表示

ウェブサイトやブログに Facebook ページをリンクしている場合、ファンが何人いるかを知りたいと思うかもしれません。このコードは、Facebook のファンの数を確認するのに役立ちます。このコードをページ ID の 2 行目に忘れずに追加してください。

1 2 3 4 5 6 <?php $page_id = "YOUR PAGE-ID"; $xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot"); $fans = $xml->page->fan_count;     echo $fans; ?>

ソースコード

英語出典: Catswhocode

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/892522.html技術記事超実践的なPHPコードスニペット、1. メールが読まれたかどうかを確認する メールを送信するとき、相手にメールが読まれたかどうか知りたい場合があります。これは非常に興味深いコードです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。