小編之前也曾報導過PHP開發人員容易忽略的幾點精華,除了一些精華技術方法外,很多細微之處也是程式師們容易忽略的,下面我們為您總結了10個關於PHP你可能不知道的事情。
關於PHP更多內容,歡迎訪問:PHP開發基礎入門
1.使用ip2long() 和long2ip()函數來把IP位址轉化成整型存儲到資料庫裡。
這種方法把存儲空間降到了接近四分之一(char(15)的15個位元組對整形的4個位元組),計算一個特定的位址是不是在一個區段內頁更簡單了,而且加快了搜索和排序的速度(雖然有時僅僅是快了一點)。
2.在驗證Email位址的時候使用checkdnsrr() 函數驗證功能變數名稱是否存在。
這個內建函數能夠確認指定的功能變數名稱能夠解析成IP位址。 該函數的PHP 文檔的使用者評論部分有一個簡單的使用者自訂函數,這個函數基於checkdnsrr(),用來驗證 email 位址的合法性。 對於那些認為自己的Email位址是memory@wwwphp100.net而不是memory@php100.net的傢伙們,這個方法可以很方便的抓住他們。
3.如果你使用的是PHP 5和MySQL 4.1 或者更高的版本,考慮用mysqli_* 系列函數。
一個很好的功能就是你可以使用預處理語句,如果你在維護一個資料庫密集型網站,這個功能能夠加快查詢速度。 一些評估分數。
4.學會愛上三元運算子。
5.如果你在專案中感覺到有可複用的部分,在你寫下一行代碼前先看看PEAR中是否已經有了。
很多PHP程式師都知道 PEAR 是一個很好的資源庫,雖然還有很多程式師不知道。 這個線上資源庫包含了超過400個可以複用的程式片段,這些程式片段你可以立即用刀你的程式裡。 除非說你的專案真的是非常特別的,你總能找到幫你節省時間的 PEAR包。
6.用 highlight_file()來自動的列印出格式化的很漂亮的原始程式碼。
如果你在留言板、IRC 這些地方尋求一個腳本的説明的話,這個函數用起來非常的順手。 當然了,要小心不要意外的洩露出你的資料庫連接資訊和密碼等。
7.使用 error_reporting(0)函數來防止使用者看到潛在的敏感錯誤資訊。
在理想情況下,發佈伺服器應該在php.ini 裡完全禁止。 但是如果你用的是一個共用的 web 伺服器的話,你沒有自己的 php.ini 檔案,那麼這種情況下你最好的選擇就是在所有腳本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。 這就能夠在出錯的時候完全遮罩敏感的SQL查詢語句和路徑名。
8.在網資料庫中存儲很大的字串之前使用 gzcompress() 和 gzuncompress() 來顯式的壓縮/解壓字串。
這個PHP內建函數使用 gzip 演算法,可以壓縮普通文本達 90%。 在我每次要讀寫BLOB類型的欄位的時候都使用這些函數。 唯一額例外就是當我需要全文檢索的時候。
9.通過「引用」傳遞參數的方法從一個函數中得到多個傳回值。
就像三元運算子一樣,大部分受過正式程式設計訓練的程式師都知道這個技巧。 但是那些 HTML 背景大於 Pascal 背景的程式師都或多或少的有過這樣的疑問「在僅能使用一次 return 的情況下,從一個函數裡返回多個值?」 答案就是在變數前加上一個 「&」 符號,通過「引用」傳遞而非「值」傳遞。
10.完全理解「魔術引號」和 SQL 注入的危險性。
我希望閱讀到這裡的開發者都已經很對SQL注入很瞭解了。 不過我還是把這條列在這裡,是因為這個確實有點難以理解。