標籤: 暫無標籤

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

1 PHP -簡介

PHPPHP

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萬台伺服器上。

2 PHP -語言特性

PHP獨特的語法混合了 C、Java、Perl 以及 PHP 自創的語法。它可以比 CGI或者Perl更快速地執行動態網頁。

用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多。

PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。PHP可以用C、C++進行程序的擴展。

3 PHP -命名約定

PHPPHP安裝
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。

4 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 函數。以下是一些範例:

<?php
$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 類型比較表看不同類型相互比較的例子。

5 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的功能。

6 PHP -PHP 3與PHP 4的比較

PHPISAPI篩選器
PHP3跟Apache伺服器緊密結合的特性;加上它不斷的更新及加入新的功能;而且幾乎支持所有主流與非主流資料庫;再以它能高速的執行效率,使得PHP在1999年中的使用站點已經超過了150000萬。加上它的源代碼完全公開,它更是這方面的中流砥柱。

不斷地有新的函數庫加入,以及不停地更新的活力,使得PHP無論在UNIX、LINUX或是Windows的平台上都可以有更多新的功能。它提供豐富的函數,使得在程序設計方面有著更好的支持。

PHP4.0整個腳本程序的核心大幅更動,讓程序的執行速度,滿足更快的要求。在最佳化之後的效率,已較傳統CGI或者ASP等程序有更好的表現。而且還有更強的新功能、更豐富的函數庫。

PHP 4.0是更有效的,更可靠的動態Web頁開發工具,在大多數情況運行比 PHP 3.0要快,其腳本描述更強大並且更複雜, 最顯著的特徵是速率比的增加。PHP4.0這些優異的性能是PHP 腳本引擎重新設計產生的結果:引擎由 AndiGutmans 和 Zeev Suraski從底層全面重寫。PHP4.0 腳本引擎 ——Zend 引擎,使用了一種更有效的編譯——執行方式, 而不是PHP 3.0 採用的執行 ——當解析時模型。

7 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文檔。 

8 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以來發布的代碼,並沒有發現惡意內容。但官方同時表示,尚未完全掌握黑客發動攻擊的具體細節。

上一篇[客戶端]    下一篇 [哈德斯菲爾德大學]

相關評論

同義詞:暫無同義詞