PHP 獨特的語法混合了 CJavaPerl 以及 PHP 自創新的語法它可以比CGI或者Perl更快速的執行動態網頁用PHP做出的動態頁面與其他的編程語言相比PHP是將程序嵌入到HTML文檔中去執行執行效率比完全生成HTML標記的CGI要高許多下面介紹了十個PHP高級應用技巧
使用 iplong() 和 longip() 函數來把 IP 地址轉化成整型存儲到數據庫裡
這種方法把存儲空間降到了接近四分之一(char() 的 個字節對整形的 個字節)計算一個特定的地址是不是在一個區段內頁更簡單了而且加快了搜索和排序的速度(雖然有時僅僅是快了一點)
在驗證 email 地址的時候使用 checkdnsrr() 函數驗證域名是否存在
這個內置函數能夠確認指定的域名能夠解析成 IP 地址該函數的 PHP 文檔的用戶評論部分有一個簡單的用戶自定義函數這個函數基於 checkdnsrr()用來驗證 email 地址的合法性該函數的具體用法可自行查詢 php 幫助文檔去
如果你使用的是 PHP 和 MySQL 或者更高的版本考慮拋棄 mysql_* 系列函數改用改進版的 mysqli_* 系列函數
一個很好的功能就是你可以使用預處理語句如果你在維護一個數據庫密集型站點這個功能能夠加快查詢速度這個是根據一些評估分數得出的結論
學會愛上三元運算符
如果你在項目中感覺到有可復用的部分在你寫下一行代碼前先看看 PEAR 中是否已經有了
很多 PHP 程序員都知道 PEAR 是一個很好的資源庫雖然還有很多程序員不知道這個在線資源庫包含了超過 個可以復用的程序片段這些程序片段你可以立即用刀你的程序裡除非說你的項目真的是非常特別的你總能找到幫你節省時間的 PEAR 包(參見 PECL)
用 highlight_file() 來自動的打印出格式化的很漂亮的源代碼
如果你在留言板IRC 這些地方尋求一個腳本的幫助的話這個函數用起來非常的順手當然了要小心不要意外的洩露出你的數據庫連接信息和密碼等
使用 error_reporting() 函數來防止用戶看到潛在的敏感錯誤信息
在理想情況下發布服務器應該在 phpini 裡完全禁止但是如果你用的是一個共享的 web 服務器的話你沒有自己的 phpini 文件那麼這種情況下你最好的選擇就是在所有腳本的第一行前加上 error_reporting();(或者使用 require_once() 方法)這就能夠在出錯的時候完全屏蔽敏感的 SQL 查詢語句和路徑名
在網數據庫中存儲很大的字符串之前使用 gzcompress() 和 gzuncompress() 來顯式的壓縮/解壓字符串
這個 PHP 內置函數使用 gzip 算法可以壓縮普通文本達 %在我每次要讀寫 BLOB 類型的字段的時候都使用這些函數唯一額例外就是當我需要全文檢索的時候
通過"引用"傳遞參數的方法從一個函數中得到多個返回值
就像三元運算符一樣大部分受過正式編程訓練的程序員都知道這個技巧但是那些 HTML 背景大於 Pascal 背景的程序員都或多或少的有過這樣的疑問"在僅能使用一次 return 的情況下從一個函數裡返回多個值?"答案就是在變量前加上一個 "&" 符號通過"引用"傳遞而非"值"傳遞
完全理解"魔術引號"和 SQL 注入的危險性
我希望閱讀到這裡的開發者都已經很對 SQL 注入和了解了不過我還是把這條列在這裡是因為這個確實有點難以理解如果你還沒有聽說過這種說法那麼把今天剩下的時間都用來 Google閱讀以及訪問php程序員的筆記網站吧
From:http://tw.wingwit.com/Article/program/PHP/201311/20852.html