ホームページ >バックエンド開発 >PHPチュートリアル >PHP の珍しいけれど便利な 10 の関数
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 プラットフォームを非常に正確に判断します。
これは、コード内の論理エラーを見つけるのに役立つデバッグ関数です。この関数を理解するために、例を見てみましょう:
PHP コード
<p>$a = 0; function iterate() { global $a; if( $a < 10 ) recur(); echo $a . “, “; } <br /></p><p>function recur() { <br /></p><p>global $a; <br /></p><p>$a++; // how did I get here? <br /></p><p>echo “\n\n\n”; <br /></p><p>debug_print_backtrace(); <br /></p><p>if( $a < 10 ) iterate(); <br /></p><p>} <br /></p><p>iterate(); </p>
# OUTPUT:
#0 recur() は [C:htdocsphp_stuffindex.php:8] で呼び出されます。 #1 iterate() は [C:htdocsphp_stuffindex.php:25] で呼び出されます。 #0 recur() は [C:htdocsphp_stuffindex.php:8] で呼び出されます。 php:8] #1 iterate() は [C:htdocsphp_stuffindex.php:21] で呼び出されます。 #2 recur() は [C:htdocsphp_stuffindex.php:8] で呼び出されます。 #3 iterate() は [C:htdocsphp_stuffindex.php: 25] #0 recur() が [C:htdocsphp_stuffindex.php:8] で呼び出される #1 iterate() が [C:htdocsphp_stuffindex.php:21] で呼び出される #2 recur() が [C:htdocsphp_stuffindex.php:8] で呼び出される#3 iterate() が [C:htdocsphp_stuffindex.php:21] で呼び出される #4 recur() が [C:htdocsphp_stuffindex.php:8] で呼び出される #5 iterate() が [C:htdocsphp_stuffindex.php:25] で呼び出される
この関数は、同じ発音を持つ単語のメタフォン値を返します。つまり、この関数は、単語の発音を判断するのに役立ちます。二つの言葉は同じですか。ただし、中国語には無効です。 。 。
natsort() は、自然な並べ替えで配列を配置できます。
PHP コード
<p>$items = array( “100 apples”, “5 apples”, “110 apples”, “55 apples” ); // normal sorting: <br /></p><p>sort($items); <br /></p><p>print_r($items); <br /></p><p># Outputs: <br /></p><p># Array <br /></p><p># ( <br /></p><p># [0] => 100 apples <br /></p><p># [1] => 110 apples <br /></p><p># [2] => 5 apples <br /></p><p># [3] => 55 apples <br /></p><p># ) <br /></p><p>natsort($items); <br /></p><p>print_r($items); <br /></p><p># Outputs: <br /></p><p># Array <br /></p><p># ( <br /></p><p># [2] => 5 apples <br /></p><p># [3] => 55 apples <br /></p><p># [0] => 100 apples <br /></p><p># [1] => 110 apples <br /></p><p># ) </p>
Levenshtein() は 2 つの単語間の「距離」を示します。ある単語を別の単語に変更する場合に、挿入、置換、削除する必要がある文字の数がわかります。
例を見てください:
PHP コード
<p>$dictionary = array( “php”, “javascript”, “css” ); <br /></p><p>$word = “japhp”; <br /></p><p>$best_match = $dictionary[0]; <br /></p><p>$match_value = levenshtein($dictionary[0], $word); <br /></p><p>foreach($dictionary as $w) { <br /></p><p>$value = levenshtein($word, $w); <br /></p><p>if( $value < $match_value ) { <br /></p><p>$best_match = $w; <br /></p><p>$match_value = $value; <br /></p><p>} <br /></p><p>} <br /></p><p>echo “Did you mean the ‘$best_match’ category?”; </p>
<p>foreach (glob(“*.php”) as $file) <br /></p><p>echo “$file\n”;</p>