関数は PHP の力の源ですが、多くの PHP 関数は十分に活用されていません。ここでは、あまり見かけないけどとても便利な機能を10個簡単に紹介します。
1. sys_getloadavg()
sys_getloadavt() でシステムの負荷状況を取得できます。この関数は 3 つの要素を含む配列を返します。各要素は過去 1、5、15 分間のシステムの平均負荷を表します。過剰な負荷によってサーバーをクラッシュさせるよりも、システム負荷が非常に高いときにスクリプトを積極的に停止する方が、この機能を実現しやすくするために使用されます。 残念ながら、この機能は Windows では無効です。
2. Pack()
Pack() は、md5() によって返された 32 ビットの 16 進数文字列を 16 ビットのバイナリ文字列に変換し、ストレージ領域を節約できます。
3. cal_days_in_month()
cal_days_in_month() は、指定された月の日数を返すことができます。
4. _()
WordPress 開発者は、_e() と同様にこの関数をよく目にします。これら 2 つの関数は同じ機能を持ち、gettext() 関数と組み合わせて使用することで Web サイトの多言語化を実現できます。詳細については、PHP マニュアルの該当部分を参照してください。
5. get_browser()
ページを送信する前にユーザーのブラウザで何ができるかを確認するのは良いことではないでしょうか? get_browser() はユーザーのブラウザの種類とブラウザでサポートされている関数を取得できますが、まず関数の参照ファイルとして機能する php_browscap.ini ファイルが必要です。
この関数によるブラウザの機能の判断は、このタイプのブラウザの一般的な特性に基づいていることに注意してください。たとえば、ユーザーがブラウザーで JavaScript サポートをオフにしている場合、関数はこれを知る方法がありません。ただし、この関数はブラウザの種類と OS プラットフォームを非常に正確に判断します。
6. debug_print_backtrace()
これは、コード内の論理エラーを見つけるのに役立つデバッグ関数です。この関数を理解するために、例を見てみましょう:
$a = 0; function iterate() { global $a; if( $a < 10 ) recur(); echo $a . “, “; } function recur() { global $a; $a++; // how did I get here? echo “\n\n\n”; debug_print_backtrace(); if( $a < 10 ) iterate(); } iterate();
# OUTPUT:
#0 recur() が [C:htdocsphp_stuffindex.php:8] で呼び出されました
#1 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: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] で呼び出されます
7. metaphone()
この関数は、同じ発音を持つ単語のメタフォン値を返します。つまり、この関数は 2 つの単語の発音が同じかどうかを判断するのに役立ちます。
8. natsort()
natsort() は、自然な並べ替えで配列を配置できます:
$items = array( “100 apples”, “5 apples”, “110 apples”, 55 apples” ); // normal sorting: sort($items); print_r($items);
# 出力:
# Array
# (
# [0] => 100 個のリンゴ)
# [1] => 110 個のリンゴ
# [2] => 5 個のリンゴ
# [3] => 55 個のリンゴ
# )
Php コード
natsort($items); print_r($items);
# 出力:
# (
# [2] => リンゴ 5 個
# [3] => リンゴ 55 個
# [0] => リンゴ 100 個
# [1] => リンゴ 110 個
# )
9. levenshtein ()
Levenshtein() は 2 つの単語間の「距離」を示します。ある単語を別の単語に変更する場合に、挿入、置換、削除する必要がある文字の数がわかります。
例を見てみましょう:
$dictionary = array( “php”, “javascript”, “css” ); $word = “japhp”; $best_match = $dictionary[0]; $match_value = levenshtein($dictionary[0], $word); foreach($dictionary as $w) { $value = levenshtein($word, $w); if( $value < $match_value ) { $best_match = $w; $match_value = $value; } } echo “Did you mean the ‘$best_match’ category?”;
10. glob()
glob() を使用すると、ファイルを検索するために opendir()、readdir()、および Closedir() を使用することが愚かに感じられます。
foreach (glob(“*.php”) as $file) echo “$file\n”;