自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

非常實用 十個PHP高級應(yīng)用技巧

開發(fā) 后端
PHP,是英文超級文本預(yù)處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,被廣泛的運用。本文介紹了十個PHP高級應(yīng)用技巧,一起來看。

PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。它可以比 CGI或者Perl更快速的執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多。下面介紹了十個PHP高級應(yīng)用技巧。

1, 使用 ip2long() 和 long2ip() 函數(shù)來把 IP 地址轉(zhuǎn)化成整型存儲到數(shù)據(jù)庫里。

這種方法把存儲空間降到了接近四分之一(char(15) 的 15 個字節(jié)對整形的 4 個字節(jié)),計算一個特定的地址是不是在一個區(qū)段內(nèi)頁更簡單了,而且加快了搜索和排序的速度(雖然有時僅僅是快了一點)。

2, 在驗證 email 地址的時候使用 checkdnsrr() 函數(shù)驗證域名是否存在。

這個內(nèi)置函數(shù)能夠確認(rèn)指定的域名能夠解析成 IP 地址。該函數(shù)的PHP 文檔的用戶評論部分有一個簡單的用戶自定義函數(shù),這個函數(shù)基于 checkdnsrr(),用來驗證 email 地址的合法性。對于那些認(rèn)為自己的 email 地址是 [url=mailto:“joeuser@wwwphp.net]“joeuser@wwwphp.net[/url]” 而不是 [url=mailto:“joeuser@php.net]“joeuser@php.net[/url]” 的家伙們,這個方法可以很方便的抓住他們。

3, 如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考慮拋棄 mysql_* 系列函數(shù)改用改進版的 mysqli_* 系列函數(shù)。

一個很好的功能就是你可以使用預(yù)處理語句,如果你在維護一個數(shù)據(jù)庫密集型站點,這個功能能夠加快查詢速度。一些評估分?jǐn)?shù)。

4, 學(xué)會愛上三元運算符。

5, 如果你在項目中感覺到有可復(fù)用的部分,在你寫下一行代碼前先看看 PEAR 中是否已經(jīng)有了。

很多 PHP 程序員都知道 PEAR 是一個很好的資源庫,雖然還有很多程序員不知道。這個在線資源庫包含了超過 400 個可以復(fù)用的程序片段,這些程序片段你可以立即用刀你的程序里。除非說你的項目真的是非常特別的,你總能找到幫你節(jié)省時間的 PEAR 包。(參見 PECL)

6, 用 highlight_file() 來自動的打印出格式化的很漂亮的源代碼。

如果你在留言板、IRC 這些地方尋求一個腳本的幫助的話,這個函數(shù)用起來非常的順手。當(dāng)然了,要小心不要意外的泄露出你的數(shù)據(jù)庫連接信息和密碼等。

7, 使用 error_reporting(0) 函數(shù)來防止用戶看到潛在的敏感錯誤信息。

在理想情況下,發(fā)布服務(wù)器應(yīng)該在 php.ini 里完全禁止。但是如果你用的是一個共享的 web 服務(wù)器的話,你沒有自己的 php.ini 文件,那么這種情況下你最好的選擇就是在所有腳本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。這就能夠在出錯的時候完全屏蔽敏感的 SQL 查詢語句和路徑名。

8, 在網(wǎng)數(shù)據(jù)庫中存儲很大的字符串之前使用 gzcompress() 和 gzuncompress() 來顯式的壓縮/解壓字符串。

這個 PHP 內(nèi)置函數(shù)使用 gzip 算法,可以壓縮普通文本達 90%。在我每次要讀寫 BLOB 類型的字段的時候都使用這些函數(shù)。唯一額例外就是當(dāng)我需要全文檢索的時候。

9, 通過“引用”傳遞參數(shù)的方法從一個函數(shù)中得到多個返回值。

就像三元運算符一樣,大部分受過正式編程訓(xùn)練的程序員都知道這個技巧。但是那些 HTML 背景大于 Pascal 背景的程序員都或多或少的有過這樣的疑問“在僅能使用一次 return 的情況下,從一個函數(shù)里返回多個值?”答案就是在變量前加上一個 “&” 符號,通過“引用”傳遞而非“值”傳遞。

10, 完全理解“魔術(shù)引號”和 SQL 注入的危險性。

我希望閱讀到這里的開發(fā)者都已經(jīng)很對 SQL 注入和了解了。不過我還是把這條列在這里,是因為這個確實有點難以理解。如果你還沒有聽說過這種說法,那么把今天剩下的時間都用來 Google、閱讀吧。

通過本文的分析,希望對你有幫助。

【編輯推薦】

  1. PHP開發(fā)必備 PHP持續(xù)集成工具介紹(上)
  2. PHP開發(fā)必備 PHP持續(xù)集成工具介紹(下)
  3. PHP開發(fā)必備 一步步學(xué)PHP模版引擎Dwoo
  4. PHP開發(fā)必備 PHP模版引擎Dwoo深入學(xué)習(xí)
責(zé)任編輯:于鐵 來源: 大學(xué)生校園網(wǎng)
相關(guān)推薦

2017-12-12 14:50:33

數(shù)據(jù)庫MySQL命令

2024-01-07 20:14:18

CSS開發(fā)工具

2022-11-07 16:06:15

TypeScript開發(fā)技巧

2023-07-02 14:21:06

PythonMatplotlib數(shù)據(jù)可視化庫

2011-06-01 09:59:52

2023-07-24 07:11:43

2024-11-26 14:18:44

Python代碼技巧

2023-10-23 14:14:10

SQL數(shù)據(jù)庫

2022-01-05 07:07:36

網(wǎng)絡(luò)

2024-06-11 08:52:58

2023-05-24 16:48:47

Jupyter工具技巧

2024-11-28 09:51:09

Python密碼信息安全

2018-01-03 08:49:28

數(shù)據(jù)庫MySQL函數(shù)

2024-08-27 12:21:52

桌面應(yīng)用開發(fā)Python

2016-05-10 10:16:13

JavaScript技巧

2010-09-08 14:35:22

CSS

2024-01-30 00:40:10

2024-12-03 14:33:42

Python遞歸編程

2011-08-22 12:24:56

nagios

2019-09-26 14:20:27

JavaScript代碼編程語言
點贊
收藏

51CTO技術(shù)棧公眾號