雙子論壇

切換風格 手機版
 找回密碼
 註冊

PHP

收藏

我的收藏

  • 現時還沒有收藏!

PHP

簡介

PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。PHP 獨特的語法混合了C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。

PHP -簡介

PHP(PHP:Hypertext Preprocessor)是一種在電腦上運行的腳本語言,是英文超文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用,主要用途是在於處理動態網頁,也包含了命令行運行接口,或者產生圖形用戶界面(GUI)程序。PHP最早由Rasmus Lerdorf在1995年發明,而後PHP的標准由PHP Group和開放源代碼社區維護。PHP以PHP License作為許可協議,但因為這個協議限制了PHP名稱的使用,所以和開放源代碼許可協議GPL不兼容。
PHP的應用範圍相當廣泛,尤其是在網頁程序的開發上。一般來說PHP大多運行在網頁服務器上,通過運行PHP代碼來產生用戶瀏覽的網頁。PHP可以在多數的服務器和操作系統上運行,而且使用PHP完全是免費的。PHP已經被安裝在超過2000萬個網站和100萬台服務器上。

PHP -語言特性

PHP獨特的語法混合了 C、Java、Perl 以及 PHP 自創的語法。它可以比 CGI或者Perl更快速地執行動態網頁。
用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多。
PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。PHP可以用C、C++進行程序的擴展。

PHP -命名約定

1. 類文件都是以“.class.php“為後綴,且類文件名只允許字母,使用駝峰法命名,並且首字母大寫,例如:DbMysql.class.php或者dbMysql.class.php首單詞小寫其他單詞首字母大寫。類文件中有且只有一個與文件名同名的類。 2. 配置和函數等其他類庫文件之外的文件一般是分別以“.inc.php“和”.php“為後綴,且文件名命名使用小寫字母和下劃線的方式,多個單詞之間以下劃線分隔,例如config.inc.php , common.php,install_function.php。
3. 確保文件的命名和調用大小寫一致。
4. 類名和文件名一致,且類名只允許字母,例如 UserAction類的文件命名是UserAction.class.php, InfoModel類的文件名是InfoModel.class.php。
5. 控制器類以Action為後綴,例如 UserAction、InfoAction ,模型類以Model為後綴,例如UserModel、InfoModel ,其他類也分別以相應分類為後綴,例如Service 、Widget。
6. 方法名只允許由字母組成,下劃線是不允許的,首字母要小寫,其後每個單詞首字母要大寫,即所謂的 “駝峰法命名” 規則,且越詳細越好,應該能夠描述清楚該方法的功能,例如switchModel、findPage。
7. 屬性的命名只允許由字母組成,下劃線是不允許的。首字母要小寫,其後每個單詞首字母要大寫,即所謂的 “駝峰法命名” 規則,例如tablePrefix、tableName。

PHP -php類型

php 支持八種原始類型。

四種標量類型:

•boolean(布爾型)

•integer(整型)

•float(浮點型,也作“double”)

•string(字符串)

兩種復合類型:

•array(數組)

•object(對象)

最後是兩種特殊類型:

•resource(資源)

•NULL

為了確保代碼的易讀性,本手冊還介紹了一些偽類型

•mixed

•number

•callback

可能還會讀到一些關於“雙精度(double)”類型的參考。實際上 double 和 float 是相同的,由於一些歷史的原因,這兩個名稱同時存在。

變量的類型通常不是由程序員設定的,確切地說,是由 php 根據該變量使用的上下文在運行時決定的。

注: 如果想查看某個表達式的值和類型,用 var_dump()。

注: 如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。要查看某個類型,不要用 gettype(),而用 is_type 函數。以下是一些範例:

$bool = TRUE; // a boolean
$str = "foo"; // a string
$int = 12; // an integer

echo gettype($bool); // prints out "boolean"
echo gettype($str); // prints out "string"

// If this is an integer, increment it by four
if (is_int($int)) {
$int += 4;
}

// If $bool is a string, print it out
// (does not print out anything)
if (is_string($bool)) {
echo "String: $bool";
}
?>如果要將一個變量強制轉換為某類型,可以對其使用強制轉換或者 settype() 函數。

注意變量根據其當時的類型在特定場合下會表現出不同的值。更多信息見類型戲法。此外,你還可以參考 php 類型比較表看不同類型相互比較的例子。

PHP -開發歷史

PHP原本的簡稱為Personal Home Page,是拉斯姆斯·勒多夫為了要維護個人網頁,而用c語言開發的一些CGI工具程序集,來取代原先使用的Perl程序。最初這些工具程序用來顯示拉斯姆斯·勒多夫的個人履歷,以及統計網頁流量。他將這些程序和一些窗體解釋器集成起來,稱為PHP/FI。PHP/FI可以和數據庫連接,產生簡單的動態網頁程序。拉斯姆斯·勒多夫在1995年6月8日將PHP/FI公開發布,希望可以通過社區來加速程序開發與查找錯誤。這個發布的版本命名為PHP 2,已經有今日PHP的一些雛型,像是類似Perl的變量命名方式、窗體處理功能、以及嵌入到HTML中運行的能力。程序語法上也類似Perl,有較多的限制,不過更簡單、更有彈性。 1997年,任職於Technion IIT公司的兩個以色列程序員:Zeev Suraski和Andi Gutmans,重寫了PHP的語法分析器,成為PHP 3的基礎,而PHP也在這個時候改稱為PHP: Hypertext Preprocessor。經過幾個月測試,開發團隊在1997年11月發布了PHP/FI 2,隨後就開始PHP 3的開放測試,最後在1998年6月正式發布PHP 3。Zeev Suraski和Andi Gutmans在PHP 3發布後開始改寫PHP的核心,這個在1999年發布的語法分析器稱為Zend Engine,他們也在以色列的Ramat Gan成立了Zend Technologies來管理PHP的開發。

2000年5月22日,以Zend Engine 1.0為基礎的PHP 4正式發布,2004年7月13日則發布了PHP 5,PHP 5則使用了第二代的Zend Engine。PHP包含了許多新特色,像是強化的面向對象功能、引入PDO(PHP Data Objects,一個訪問數據庫的延伸函數庫)、以及許多性能上的增強。PHP 4已不會繼續更新,以鼓勵用戶轉移到PHP 5。

2008年PHP 5成為了PHP唯一維護中的穩定版本。PHP 5.3會加入Late static binding和一些其他的功能強化。

PHP 6的開發也正在進行中,主要的改進有移除register_globals、magic quotes和Safe mode的功能。

PHP -PHP 3與PHP 4的比較


PHP3跟Apache服務器緊密結合的特性;加上它不斷的更新及加入新的功能;而且幾乎支持所有主流與非主流數據庫;再以它能高速的執行效率,使得PHP在1999年中的使用站點已經超過了150000萬。加上它的源代碼完全公開,它更是這方面的中流砥柱。
不斷地有新的函數庫加入,以及不停地更新的活力,使得PHP無論在UNIXLINUX或是Windows的平台上都可以有更多新的功能。它提供豐富的函數,使得在程序設計方面有著更好的支持。
PHP4.0整個腳本程序的核心大幅更動,讓程序的執行速度,滿足更快的要求。在最佳化之後的效率,已較傳統CGI或者ASP等程序有更好的表現。而且還有更強的新功能、更豐富的函數庫。
PHP 4.0是更有效的,更可靠的動態Web頁開發工具,在大多數情況運行比 PHP 3.0要快,其腳本描述更強大並且更復雜, 最顯著的特征是速率比的增加。PHP4.0這些優異的性能是PHP 腳本引擎重新設計產生的結果:引擎由 AndiGutmans 和 Zeev Suraski從底層全面重寫。PHP4.0 腳本引擎 ——Zend 引擎,使用了一種更有效的編譯——執行方式, 而不是PHP 3.0 採用的執行 ——當解析時模型。

PHP -PHP 5

盡管PHP4的發展迅猛,但較之於其他流行的開發語言還是缺乏一些關鍵的功能特性,比如,PHP4中的面向對象功能並不完善,也無法實現異常(Exception)的捕捉與處理。因此在一些特殊問題的處理上還是捉襟見肘。
2004年7月,PHP5正式版本的發布,標志著一個全新的PHP時代的到來。它的核心是第二代Zend引擎,並引入了對全新的PECL模塊的支持。PHP5的最大特點是引入了面向對象的全部機制,並且保留了向下的兼容性。程序員不必再編寫缺乏功能性的類,並且能夠以多種方法實現類的保護。
另外,在對象的集成等方面也不再存在問題。使用PHP5引進了類型提示和異常處理機制,能更有效的處理和避免錯誤的發生。在不斷更新的同時,PHP5依然保留對舊有的PHP4程序可以運行於PHP5的平台上而不會出現較大問題。隨著MySQL數據庫的發展,PHP5還綁定了新的MySQLi擴展模塊,它提供了一些更加有效的方法和實用工具用於處理數據庫操作。PHP5添加了面向對象的PDO模塊,提供了另外一種數據庫操作的方案,統一數據庫操作的API。PHP5提供了數據庫引擎SQLite擴展,直接用這個擴展就可以創建和使用SQLite數據庫。這些方法大都以面向對象的方式實現,同時也極大地提高了基於數據庫的Web項目的執行速度。
PHP5中還改進了創建動態圖片的功能,能夠支持多種圖片格式(如PNG、GIF、TTIF、JPEG等)。PHP5以及內置了對GD2庫的支持,因此安裝GD2庫(主要指UNIX系統中)也不再是件難事,這使得處理圖像十分簡單和高效。大多數Web程序開發者依然將XML作為一個徹底的簡單數據庫使用。PHP5中也採用了一系列簡單易用、功能強大的方法處理XML文檔。

PHP -安全

據National Vulnerability Database數據顯示,與PHP有關的數據庫攻擊比例為:20% 2004, 28% 2005, 43% 2006, 36% 2007, 35% 2008 and 32% 2009。其中很多的漏洞都可以通過遠程操作完成,如:黑客可以通過網絡連接攻擊服務器,達到盜取或毀壞數據,發送垃圾郵件或進行分布式拒絕服務攻擊。但是隨著更多的關注,PHP也變得越來越安全了。
PHP官網被黑事件
2010年12月17日,PHP代碼“貢獻者名單”中被加入“Wolegequ gelivable”字樣(中文含義“我勒個去 給力”),約半小時後被刪除。2011年3月19日,PHP官方發布聲明指出,黑客可能是通過wiki.php.net作為入口攻擊了代碼系統。並且,官方已經檢查過自版本5.3.5以來發布的代碼,並沒有發現惡意內容。但官方同時表示,尚未完全掌握黑客發動攻擊的具體細節。

出處

依據「 CC-BY-SA 」授權,上方的說明是來自維基百科「PHP」條目,完整的貢獻者列表在這裡。 本社群頁面並沒有被任何和此主題相關的人參與或推薦。
  1. 從其他中文百科進行搜尋「PHP」
  2. 從其他百科進行搜尋「PHP」
  3. 新建「PHP」條目

當前時區 GMT+8, 現在時間是 2017-08-20 17:47
Powered by Elevatorsx! 2.0.0 © 2017 Processed in 0.003125 second(s) 聯絡我們清除 CookiesArchive私隱政策討論區