1. 使用 ip2long() 和 long2ip() 以整型(integer)方式儲存IP地址到資料庫,而非字串方式。這將幾乎減少一半的儲存空間(char(15)15個位元組,integer則是8個位元組),而且也更容易計算某一IP地址是否在一個範圍之內。同時也加速搜尋和排序。
2. 應用checkdnsrr()檢查網域名稱是否存在,來驗證email地址的一部分。這個checkdnsrr()內建函數可以通過相應的網域名稱或者IP地址查詢DNS記錄。有PHP開發人員利用這個函數編寫了一個自訂函數,能驗證email地址的一部分,點擊查看。請注意,此函數在windows平台尚未實現!請用 PEAR 程式庫的 Net_DNS 代替。
3. 如果你使用PHP 5 + MySQL 4.1 版本組合或其版本以上,得試試改進的 mysqli_* 函數,而不用 mysql_* 函數。mysqli_* 函數的一個優越的特點是可以使用 prepared 語句。如果你維護一個對資料庫依賴性很大的網站,這個函數將大大提升資料庫的查詢速度。不信你可以看看這篇效能測試文章—MySQLi vs MySQL。最終結果是 mysqli_stmt > mysql_query > mysqli_query > mysqli_multi_query 。mysqli_stmt最佳。
4. 學會、愛用三元操作符( ternary operator )。也就是if/else條件陳述式的代替,用 “?:” 表示。
5. 不必重造車輪,先看看PEAR 程式庫有沒有人已經發明這個輪子了。
6. highlight_file()能格式化你的代碼,美觀漂亮。
7. 使用 error_reporting(0) 函數,阻止潛在的敏感錯誤資訊顯示給使用者。最好的情況是能在伺服器上配置php.ini檔案,直接屏蔽錯誤報表的顯示。但是如果使用虛擬機器主機就沒那麼幸運能夠編輯修改php.ini檔案了,得使用另外的方法:在php代碼首行添加error_reporting(0); 語句。這樣的好處是使得SQL查詢語句和伺服器的實體路徑等這些敏感錯誤資訊完全不顯示給使用者。
8. 大量字串文本儲存入資料庫之前,使用 gzcompress() 和 gzuncompress() 進行壓縮和解壓縮的轉換。這個內建函數使用gzip演算法,對文本的壓縮率達90%以上。當然,經過壓縮就無法進行全文檢索搜尋了。
9. 在函數的參數傳遞中使用”引用傳遞”,可以返回多個值。有程式設計語言基礎的程式員在其它語言就知道這個用法了;然而一些只會html語言的網頁設計者就感到困惑了。答案就是使用 “&” 符號處理變數,並以引用傳遞而非按值傳遞。
<