厲害了,這些小技巧讓你成為PHP老手!

很多人說PHP是世界上最好的程式語言,好吧,我先不討論這些這麼爭議性的話題,PHP這麼簡單快捷也同樣有很多它的弱點。今天主要介紹一些小技巧,讓你瞬間變得高大上。

1。

使用 ip2long() 和 long2ip() 函式將 IP 地址由字串轉換為整數儲存到資料庫。

這樣可以減少約四分之一(15位元組的字元對比4位元組的整數)的儲存空間,更易於計算該 IP 地址的有效範圍,而且還加速了搜尋和排序的效率。

厲害了,這些小技巧讓你成為PHP老手!

驚訝在辦公室工作的女程式設計師

2。

透過 checkdnsrr() 函式來驗證 Email 地址的 Domain 部分是否存在。

此內建函式將檢查指定域名是否解析到某一 IP 地址以驗證其有效性。你可以在 PHP 文件的“使用者評論”部分找到一個透過此函式來驗證Email地址有效性的使用者自定義函式。

3。

如果你正在使用 PHP5 和 MySQL 5及以上版本, 建議使用改進的 mysqli_* 函式代替 mysql_* 函式。

它的一個優秀特性就是如果你正維護的網站非常依賴資料庫的話,你可以用 mysqli_stmt_prepare 來提高查詢的效率。附:一些測試

厲害了,這些小技巧讓你成為PHP老手!

4。

熟悉,並喜歡三元運算子。

5。

專案中,有時候需要重寫某一模組,建議你在重寫之前先看看 PEAR。

PEAR 是一個非常重要的資源,許多 PHP 程式設計師都知道它,但更多的還不知道。它是一個線上的知識庫,包含了400個以上可以良好的作用於PHP程式的可重用的程式碼片斷。除非你的專案真的很“獨特”,否則你應該能夠找到一個 PEAR 包,至少它可以節約時間。(參考 PECL)

厲害了,這些小技巧讓你成為PHP老手!

6。

使用 highlight_file() 輸出一個被格式化和高亮的頁面原始碼複本。

此函式很實用,尤其是在一些類似於留言薄,IRC等應用中。顯然地,一些包含敏感資訊諸如資料庫連線,密碼等資訊的原始檔需要引起注意。

7。

使用 error_reporting(0) 函式避免顯示潛在的敏感資訊給使用者。

理想的情況下,應該透過修改 php。ini 將錯誤報告完全地禁用。然而,如果你在一臺多人共享的虛擬主機上,那麼你便沒有許可權,所以最好的辦法就是增加 error_reporting(0) 在每個指令碼的第一行(或者透過 require_once() 包含它),如此當程式發生錯誤的時候,便可避免潛在的SQL查詢語句和路徑資訊暴露給使用者。

厲害了,這些小技巧讓你成為PHP老手!

8。

儲存一個大字串到資料庫之前,使用 gzcompress() 或 gzuncompress() 進行壓縮/解壓。

此內建函式使用 gzip 演算法,其明文壓縮率可以達到 90%。幾乎每次我用 PHP 讀寫一個 BLOB 欄位的時候都會用到它們(除需要全文索引時)。

9。

透過引用引數從一個函式返回多個值。

就像三元運算子一樣,許多拘謹於程式設計背景的程式設計師早已知道它。但是,比起 Pascal 更瞭解 HTML 的程式設計師可能會為“如何從一個函式中返回多個值?難道我只能返回一個值嗎?”的問題而困惑。這個問題你可以透過在變數前面加上“&”以引用來解決。

10。

完全地理解“magic quotes”和SQL注入所帶來的危害。

我希望眾多開發人員在讀到這篇文章之前就已經熟悉SQL注入。然而,我把它列在這裡的原因就是它的重要性是絕對有必要知道的!

11。

迴圈內部不要宣告變數,尤其是物件這樣的變數。

12、

foreach效率更高,儘量用foreach代替while和for迴圈。

13、

迴圈裡別用函式

for($x=0; $x < count($array); $x)

//count()函式在外面先計算

14、

用i+=1代替i=i+1。符合c/c++的習慣,效率還高。

15、

最佳化Select SQL語句,在可能的情況下儘量少的進行Insert、Update操作,達到PHP效能最佳化的目的。

16、

儘量的少進行檔案操作,雖然PHP的檔案操作效率也不低的。

厲害了,這些小技巧讓你成為PHP老手!

17、

在可以用PHP內部字串操作函式的情況下,不要用正則表示式。

// GOOD

$addr = strtr($addr, “abcd”, “efgh”);

// BAD

$addr = strtr($addr, array(‘a’ => ‘e’, ));

?>

18、

在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,儘量用file_get_contents,因為它的效率高得多

。但是要注意file_get_contents在開啟一個URL檔案時候的PHP版本問題。

19、

Apache解析一個PHP指令碼的時間要比解析一個靜態HTML頁面慢2至10倍。儘量多用靜態HTML頁面,少用指令碼。

20、

使用選擇分支語句,switch case好於使用多個if,else if語句,並且程式碼更加容易閱讀和維護。

21、

當echo字串時用逗號代替點連線符更快些。echo一種可以把多個字串當作引數的“函式”。

echo是語言結構,不是真正的函式,故把函式加上了雙引號。例如:echo $str1,$str2

22、

過渡到PHP7+版本,永遠瞭解最新的特徵,這是一個開發者基本素養

厲害了,這些小技巧讓你成為PHP老手!