10個鮮為人知但非常有用的PHP函式
轉載自我贏職場
1.來文史特距離(字串相似性)
<?php
$str1 = "aaa";
$str2 = "aaab";
echo levenshtein($str1, $str2); //輸出2
?>
它可以計算出 字串str1和字串str2 之間相差幾個字母。這個是php比較特色的函式,因為你用其他語言很可能要自己去實現來文史特距離的矩陣元算。
2.返回所定義的所有變數的陣列
<?php
print_r(get_defined_vars());
?>
這是一個非常有用的功能,當你想要除錯你的程式碼,同時代碼比較亂忘了定義了哪些變數。它會返回所定義的所有變數的陣列。放在最後一句哦~~~
3.檢查你的PHP程式碼語法函式
<?php
$error_message = "";
$filename = "./php_script.php";
if(!php_check_syntax($filename,
&$error_message))
{
echo "Errors were found in the file
$filename: $error_message";
}
else
{
echo "The file $filename contained no syntax errors";
}
?>
php_check_syntax 也就是這個函式。不過在php5中被棄用了,否則用php開發一個線上編譯器 還是很好用的,當然你用php4也能幹。
4.忽略來自客戶端的中止請求
<?PHP
ignore_user_abort();
?>
一般情況下,使用者在瀏覽器中可以按“停止”來停止所有請求,但是這個函式可以忽略使用者的操作。
5.高亮語法標記
<?php
highlight_string(' <?php phpinfo(); ?>');
highlight_string('<?php aa();?>');
?>
這個其實再做一些特定語法展現時比較有用,它自動會輸出 <?php aa() ?>字串,並顯示藍色代表高亮。
6.highlight_file()高亮檔案內容語法標記
<?php
highlight_file("test.php");
//這裡必須是一個存在的檔名
?>
這個函式會把test.php檔案內容加載出來,然後把<?php。。。。 ?>裡面的內容進行 高亮展示,很牛逼哦~~~
7.去掉檔案中的註釋和空格
<?php
echo php_strip_whitespace("test.php");
?>
這個函式作用巨大,如果你寫完test.php程式後 不想讓你的2B同事偷學,你可以用這個函式把去掉註釋和空格的程式輸出到頁面,然後再拷貝回去。好比壓縮功能。
8.在伺服器端讀取客戶瀏覽器版本資訊
<?php
echo $_SERVER['HTTP_USER_AGENT'];
//輸出常見的瀏覽器資訊,譬如 Mozilla/5.0 (Windows NT 5.2; rv:26.0) Gecko/20100101 Firefox/26.0
$browser = get_browser();
print_r($browser);
?>
注意:browscap.ini檔案 請到網上去下載最新,檔案裡面記錄了所有已存在的瀏覽器的型別及其資訊,並在php.ini增加檔案指向配置。這個檔案可以幫你比較精準的判斷使用者當前瀏覽器的版本資訊。
9.檢查效能和cpu使用效率
<?php
echo "Initial: ".memory_get_usage()
." bytes \n";
echo "Peak: ".memory_get_peak_usage()
." bytes \n";
$data = getrusage();
echo "User time: ".
($data['ru_utime.tv_sec'] +
$data['ru_utime.tv_usec'] / 1000000);
echo "System time: ".
($data['ru_stime.tv_sec'] +
$data['ru_stime.tv_usec'] / 1000000);
?>
試一試便可,可以檢查出你寫的程式碼是否 蹂躪了伺服器。遺憾的是這些函式不能在windows伺服器上使用。(其實很正常嘛)
10.壓縮字串函式
$string =
"這裡放一大堆中文字,反正很長很長很長 ";
$compressed = gzcompress($string);//壓縮
echo $compressed; //亂碼了。是gzip壓縮碼了
$original = gzuncompress($compressed);
//解壓
echo $original;//正常了
這個功能很有用,譬如你要寫一些ajax在客戶端和服務端進行無節操互動時,適當用一些這個函式還是很好地。(函式雖好,但是不要亂用哦,過於頻繁對伺服器效能也是有影響的)