長年働いてきた古い PHP プログラマーの要約によると、PHP に付属する関数ライブラリには、あまり一般的ではないが非常に便利な関数が多数あることがわかりました。ここでは、あまり一般的ではないが、非常に便利な PHP 関数を 10 個紹介します。
sys_getloadavt() でシステムの負荷状態を取得できます。この関数は 3 つの要素を含む配列を返します。各要素は過去 1、5、15 分間のシステムの平均負荷を表します。 過剰な負荷によってサーバーをクラッシュさせるよりも、システム負荷が非常に高いときにスクリプトを積極的に停止する方が、この機能を実現しやすくするために使用されます。 残念ながら、この機能は Windows では無効です。
pack() は、md5() によって返された 32 ビットの 16 進文字列を 16 ビットのバイナリ文字列に変換でき、ストレージ領域を節約できます。
cal_days_in_month() は、指定された月の日数を返すことができます。
WordPress 開発者はこの関数と _e() をよく目にします。これら 2 つの関数は同じ機能を持ち、gettext() 関数と組み合わせて使用することで Web サイトの多言語化を実現できます。詳細については、PHP マニュアルの該当部分を参照してください。
ページを送信する前にユーザーのブラウザで何ができるかを確認するのは良いことではないでしょうか?
get_browser() はユーザーのブラウザの種類とブラウザでサポートされている関数を取得できますが、まず関数の参照ファイルとして機能する php_browscap.ini ファイルが必要です。この関数によるブラウザの機能の判断は、このタイプのブラウザの一般的な特性に基づいていることに注意してください。たとえば、ユーザーがブラウザーで JavaScript サポートをオフにしている場合、関数はこれを知る方法がありません。ただし、この関数はブラウザの種類と OS プラットフォームを非常に正確に判断します。
これは、コード内の論理エラーを見つけるのに役立つデバッグ関数です。この関数を理解するために、例を見てみましょう:
<p><?php</p>$a=0;<br />function iterate(){<br /> global $a;<br /> if($a<10){<br /> recur();<br /> }<br /> echo $a.", ";<br />} <br />function recur(){<br /> global $a;<br /> $a++;<br /> echo "\n\n\n";<br /> debug_print_backtrace();<br /> if($a<10){<br /> iterate();<br /> }<br />} <br /><p>iterate();</p>
この例のプログラムが何をしているか知っていますか?実は私もよく分かりませんでしたが、そんなことは重要ではありません!重要なのは、次の内容が出力されることです:
0 recur() が [C:htdocsphp_stuffindex.php:8] で呼び出されました。
1 iterate() が [C:htdocsphp_stuffindex.php:25] で呼び出されました。5 iterate() で呼び出される [C:htdocsphp_stuffindex.php:25]
この関数は、単語のメタフォン値を返します。同じ発音を持つ単語は同じメタフォン値を持ちます。つまり、この関数は 2 つの単語の発音が同じかどうかを判断するのに役立ちます。
ただし、中国語では無効です。 。 。
natsort() は自然な並べ替え方法で配列を配置できます。例を見てみましょう:
<p><?php</p>$items=array('100 apples','5 apples','110 apples','55 apples');<br />sort($items);<br />print_r($items);<br />natsort($items);<br /><p>print_r($items);</p>
出力結果は次のとおりです:
Array(
[0] => 100 個のリンゴ9.levenshtein()
<p><?php</p>$dictionary=array("php","javascript","css");<br />$word="japhp";<br />$best_match=$dictionary[0];<br />$match_value=levenshtein($dictionary[0], $word);<br />foreach($dictionary as $w){<br /> $value=levenshtein($word,$w);<br /> if($value<$match_value){ <br /> $best_match=$w;<br /> $match_value=$value;<br /> }<br />}<br /><p>echo "Did you mean the '",$best_match,"' category?";</p>
10.glob()
この関数は、一致するファイル/ディレクトリを含む配列を返します。エラーが発生した場合は false を返します。
<p><?php</p>foreach(glob("*.php") as $file){<br /> echo "$file\n";<br />}