php是什麼呢
Ⅰ php是什麼意思
php通常指超文本預處理器,用於面向對象、命令式編程,是一種通用開源腳本語言。
主要特點:
為開源性和免費性、快捷性、資料庫連接的廣泛性、面向過程和面向對象並用。優點是利於學習,使用廣泛。此外,php還可以指菲律賓比索的標准貨幣代碼符號,MPLS網路中的倒數第二跳彈出功能。是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種HTML 內嵌式的語言,是一種在伺服器端執行嵌入HTML文檔的腳本語言,語言風格有些類似於c語言,被廣泛的運用。
簡介:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
特性包括:
1、PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法
2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現
3、 PHP支持幾乎所有流行的資料庫以及操作系統。
4、最重要的是PHP可以用C、C++進行程序的擴展!
語言特點:
開源免費
PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
快捷高效
PHP的內核是C語言編寫的基礎好效率高,可以用C語言開發高性能的擴展組件;PHP的核心包含了數量超過1000的內置函數,功能應有盡有很全面,開箱即用程序代碼簡潔; PHP數組支持動態擴容,支持以數字、字元串或者混合鍵名的關聯數組,能大幅提高開發效率; PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發效率快;PHP天然熱部署,在php-fpm運行模式下代碼文件覆蓋即完成熱部署;PHP經過20多年的發展,在互聯網上可以搜到海量的參考資料供參考學習。
性能提升
PHP版本越高它的整體性能越高,根據官方介紹,PHP7.0.0 對比PHP5.6性能就提升了2倍,PHP7.4已經比PHP7.0快了約30%,PHP8.0在性能上又相對PHP7.4大約改進了10%。PHP 8.0 引入了 JIT編譯器特性,同時加入多種新的語言功能,例如命名參數、聯合類型、註解、Constructor Property Promotion、match 表達式、nullsafe 運算符以及對類型系統、錯誤處理和一致性的改進。PHP擁有自己的核心開發團隊,保持5年發布一個大版本、1個月發布2個小版本的頻率,最新的版本是PHP8.08 。
跨平台
每個平台都有對應的php解釋器版本,指針對不同平台均編譯出目標平台的二進制碼(PHP解釋器),php開發的程序可以不經修改運行在windows、linux、unix等多個操作系統上。
常駐內存
php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存實現資源復用,比較常用的做法是結合swoole 組件編寫cli框架。
頁面生命周期
在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空,對程序員水平要求低,佔用內存非常少,特別適合中小型系統的開發。
運行機制:
PHP常見的運行模式有2種,分別是php-fpm 和php-cli 。當PHP 選擇運行在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空。運行在php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存 實現資源復用,性能可以得到很大的提升,php-cli開發比較復雜能但是能夠獲取更高的性能,對開發者的要求比較高需要比較高的開發水平,比較常用的模式是結合swoole 組件編寫cli框架,各種變數能保存在跨進程的高性能共享內存 Table ,可以開發出支持熱啟動的php-cli可靠各類應用系統。
php-fpm在PHP 5.3.3 版本成為了官方正式組件(2010-07-22),它提供了穩定可靠的進程管理服務,進程不足時候可以智能擴充數量,閑置時候可以自動回收銷毀多餘的進程,同時它對程序的容錯能力很強大運行非常穩定,可以應付企業級的開發需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯網協議下進行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內存泄漏的問題。php-fpm也提供有一些常駐內存的技術支持,例如PHP 7.4引入的opcache.preload也能實現局部的PHP類和函數的常駐內存,不過這個方法不夠靈活,和伺服器配置捆綁的太死了。
php-cli因為能實現各類資源的常駐內存,所以可以資源復用,更高效完成多進程編程和非同步編程,可以開發出負載能力更高的應用系統。但是相對php-fpm的簡單編程開發,開發者要注意很多的事項和需要做很多附加的控制器開發,否則就無法實現期待中的高性能。
首先開發者需要去實現可靠的進程管理服務,保證系統進程遇到各類錯誤退出運行後能夠自動創建新的進程,只有這樣才能保證後續的服務請求有足夠空閑進程可分配。每個業務代碼段都要做異常處理,讓進程遇到非致命錯誤時候不會退出,因為進程重啟意味程序和各類資源需要再次載入,這個過程性能消耗不小,所以只有進程穩定運行了常駐內存才有意義。
其次因為常駐內存,編寫的新的程序必須重啟服務才能生效,這一點習慣了fpm模式的開發者會感到比較陌生。另外開發者需要手工釋放內存,否則系統長時間運行後會出現內存泄露。同時在cli模式下,我們不能像fpm里直接用 $_SERVER、$_POST、$_GET、$_COOKI和$_FILES 進行編程工作,需要自己去解析各種互聯網通訊協議完成用戶的輸入輸出。要實現多進程編程利用多核CPU計算,還有學習使用pcntl和posix編程,這里涉及到了非同步編程邏輯,這塊難度還是比較大的。比較常用的模式是結合swoole 組件編寫cli框架。
PHP是一個活躍的社區開發語言,有專業的核心開發團隊在持續不斷的迭代,最近一個版本就是PHP 8.0.8 引入了很多的新特性。
語言參考:
內置函數
PHP 有很多標準的函數和結構。還有一些函數需要和特定的擴展模塊一起編譯,否則在使用它們的時候就會得到一個致命的「未定義函數」錯誤。例如,要使用 image 函數中的 imagecreatetrue,需要在編譯 PHP 的時候加上 GD 的支持。或者要使用 mysqli_connect函數,就需要在編譯 PHP 的時候加上 MySQLi 支持。有很多核心函數已包含在每個版本的 PHP 中如字元串和變數函數。調用 phpinfo或者 get_loaded_extensions可以得知 PHP 載入了那些擴展庫。同時還應該注意,很多擴展庫默認就是有效的。
靜態網站與動態網站的區別
靜態網站:web1.0 時代
動態網站:web2.0 時代
靜態網站特點:
1、網頁內容一經發布到網站伺服器,無論是否有用戶訪問,每個靜態頁面的內容都是保存在網站伺服器上的。也就是說,靜態網頁是實實在在保存在伺服器上的文件,每個網頁都是一個獨立的文件。
2、靜態網頁的內容相對穩定,因此容易被搜索引擎檢索。
3、 靜態網頁沒有資料庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難。
4、靜態網頁的交互性較差,在功能方面有較大的限制。
Ⅱ php是什麼
PHP(PHP:Hypertext Prerocessor)是一種在電腦上執行的腳本語言,主要是用途在於處理動態網頁,也包含了命令行執行介面(command line interface),或者產生圖形使用者介面(GUI)程序。[1]
PHP 最早由 Rasmus Lerdorf 在1995年發明,現在PHP實質上的標准由PHP Group和開放源代碼社群維護。PHP 以 PHP License 作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放源代碼許可協議GPL不相容。[2]
PHP 目前被廣泛的應用,特別是在伺服器端的網頁程序開發。一般來說 PHP 大多執行在網頁伺服器上,透過執行PHP程序碼來產生使用者瀏覽的網頁。PHP 幾乎可以在任何的操作系統上執行,而且使用 PHP 完全是免費的。根據2007年4月的統計資料,PHP 已經被安裝在超過2000萬個網站和100萬台伺服器上[3]。
目錄 [隱藏]
1 開發歷史
1.1 版本歷程
2 應用
3 語法
3.1 類型
3.2 變數
3.3 面向對象
4 PHP相關資源
4.1 函數庫
4.2 源代碼編碼和加速
4.3 樣板引擎
5 未來發展
5.1 PHP 5.3
6 參考資料
7 外部鏈接
[編輯] 開發歷史
PHP 的發明人 Rasmus Lerdorf
Zend Technologies的創辦人之一 - Andi GutmansFile:Zeev Suraski.jpg
Zend Technologies的創辦人之一 - Zeev SuraskiPHP 原本的簡稱為 Personal Home Page[4],是Rasmus Lerdorf 為了要維護個人網頁,而用c語言開發的一些CGI工具程序集,來取代原先使用的 Perl 程序。最初這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量[5]。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和資料庫連接,產生簡單的動態網頁程序。Rasmus Lerdorf 在1995年6月8日將 PHP/FI 公開釋出,希望可以透過社群來加速程序開發與尋找錯誤[6]。這個釋出的版本命名為 PHP 2,已經有今日 PHP 的一些雛型,像是類似 Perl 的變數命名方式、表單處理功能、以及嵌入到 HTML 中執行的能力。程序語法上也類似 Perl,有較多的限制,不過更簡單、更有彈性。[5]
在1997年,任職於 Technion IIT 公司的兩個以色列程序設計師:Zeev Suraski 和 Andi Gutmans,重寫了 PHP 的剖析器,成為 PHP 3 的基礎,而 PHP 也在這個時候改稱為PHP: Hypertext Preprocessor.[5]。經過幾個月測試,開發團隊在1997年11月釋出了 PHP/FI 2,隨後就開始 PHP 3 的開放測試,最後在1998年6月正式釋出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 釋出後開始改寫 PHP 的核心,這個在1999年釋出的剖析器稱為 Zend Engine[7],他們也在以色列的 Ramat Gan 成立了 Zend Technologies 來管理 PHP 的開發。[5]
在2000年5月22日,以Zend Engine 1.0為基礎的PHP 4正式釋出,2004年7月13日則釋出了PHP 5,PHP 5則使用了第二代的Zend Engine[5]。PHP包含了許多新特色,像是強化的面向對象功能、引入PDO(PHP Data Objects,一個存取資料庫的延伸函數庫)、以及許多效能上的增強[8]。目前PHP 4已經不會繼續更新,以鼓勵用戶轉移到PHP 5。[9][10]
2008年PHP 5成為了PHP唯一的有在開發的PHP版本。將來的PHP 5.3將會加入Late static binding和一些其他的功能強化[11][12] 。PHP 6 的開發也正在進行中,主要的改進有移除register_globals[13]、magic quotes 和 Safe mode的功能。[9][14]
[編輯] 版本歷程
代表意義
紅色 舊版;官方停止支持
黃色 舊版;官方維護中
綠色 目前版本
藍色 未來版本
主要版本 次要版本 釋出日期 說明
1.0 1.0.0 1995年6月8日 正式名稱為"Personal Home Page Tools (PHP Tools)",第一次使用了"PHP"的名字。[5]
2.0 2.0.0 1994年4月16日 針對PHP 1.0的改進版,速度更快、體積更小,更容易產生動態網頁。[5]
3.0 3.0.0 1998年6月6日 開發方式改成多人共同參與。Zeev Suraski 和 Andi Gutmans 為了這個版本重寫了剖析引擎。[5]
4.0 4.0.0 2000年5月22日 改成以Zend引擎作為剖析器,具有兩階段剖析/標簽剖析系統等先進功能。[15]
4.1.0 2001年12月10日 加入"超全域變數"(superglobals)功能,包含了$_GET、$_POST、 $_SESSION等[15]
4.2.0 2002年4月22日 默認取消register_globals功能。從網路接收的資料將不會設定成全域變數,增加程序安全性[15]。
4.3.0 2002年12月27日 加入命令行執行檔,稱為CLI。[15]
4.4.0 2005年7月11日 Added man pages for phpize and php-config scripts.[15]
4.4.8 2008年1月3日 Several security enhancements and bug fixes. Was to be the end of life release for PHP 4. Security updates only until 2008-08-08, if necessary.[16]
4.4.9 2008年8月7日 More security enhancements and bug fixes. The last release of the PHP 4.4 series.[17][18]
5.0 5.0.0 2004年7月13日 Zend Engine II with a new object model.[19]
5.1.0 2005年11月24日 Performance improvements with introction of compiler variables in re-engineered PHP Engine.[19]
5.2.0 2006年11月2日 Enabled the filter extension by default.[19]
5.2.8 2008年12月8日[20] emergent bug fix[20]
5.2.9 2009年2月26日[21] 這個版本解決了5.2.*的超過了50多個錯誤和多個安全問題,增加了穩定性。[21]
5.2.9-2(Windows) 2009年3月10日[22] 這個版本解決了在Windows系統下OpenSSL的安全缺陷,與其綁定的OpenSSL版本升級到0.9.8k。[22]
5.3.0 預計2009年第二季[23] 支持命名空間; 使用XMLReader和XMLWriter增強XML支持; 支持SOAP ,[24] 延遲靜態綁定, 跳轉標簽(有限的 goto), 閉包,Native PHP archives
6.0 6.0.0 ??? 支持Unicode; 移除ereg擴展, 'register_globals', 'magic_quotes' 和 'safe_mode'; Alternative PHP Cache;Removal of mime_magic and rewrite of fileinfo() for better MIME support[25]
[編輯] 應用
PHP 是一個應用范圍很廣的語言,特別是在網路程序開發方面。一般來說 PHP 大多在伺服器端執行,透過執行 PHP 的程序碼來產生網頁提供瀏覽器讀取,此外也可以用來開發命令行腳本程序和使用者端的GUI應用程序。PHP可以在許多的不同種的伺服器、操作系統、平台上執行,也可以和許多資料庫系統結合。使用 PHP 不需要任何費用,官方組織 PHP Group 提供了完整的程序源代碼,允許使用者修改、編譯、擴充來使用。[26]
[編輯] 語法
PHP的語法參考了Perl、C語言,而且可以整合在HTML之中,以下是一個簡單的Hello World程序:
<?php
echo 'Hello World!';
?>
PHP剖析引擎只剖析<?php到?>之間的程序碼,而不包含在<?php到?>之間的內容則會直接送出,所以可以用以下的方式來將PHP程序碼嵌入在HTML之中:
<?php
//-PHP程式碼
?>
html內容
<?php
//-PHP程式碼
?>
但是在判斷語句中的HTML代碼並不會被直接送出:
<?php
if (false) {
?>
HTML Code
<?php
}
?>
PHP可以用三種註解的形式:C與C++所使用的「/*...*/」與「//」,和Perl的「#」。
[編輯] 類型
PHP主要有以下四種變數類型:
整數 (integer)
浮點數 (float)
布爾數 (boolean)
字串 (string)
兩種復合類型:
陣列 (array)
物件 (object)
兩種特殊類型
NULL
資源 (resource)[27]
[編輯] 變數
PHP中,變數以「$」後接變數名稱來表示。變數名稱區分大小寫。有效的變數名稱以字母或底線開頭,後接任意數目的字母、數字或底線。[28]
[編輯] 面向對象
PHP從PHP 3開始有了基本的面向對象的特性,但直到PHP 5將面向對象部份重新改寫之後,PHP的面向對象功能才比較完善。現在PHP可以說是一個有完整面向對象功能的語言。
[編輯] PHP相關資源
[編輯] 函數庫
主條目:PHP函數庫列表
內建多樣化的函數是PHP主要的特點之一,這些開放程序碼的函數提供了各種不同的功能,例如檔案處理、FTP、字串處理、等等。這些函數的使用方法和C語言相近(例如printf),這也是PHP廣為流行的原因之一。
除了內建的函數之外,PHP也提供了很多延伸函數庫(extension),像是各種資料庫連接函數、資料壓縮函數、圖形處理等等。有些延伸函數庫需要從PECL(PHP Extension Community Library)取得。
[編輯] 源代碼編碼和加速
PHP源代碼是可以直接讀取的,即使放到伺服器上執行也是一樣。雖然讓PHP多了彈性,但相對的會造成安全危機和性能下降的問題。
透過PHP編碼器,可以保護PHP的源代碼不被讀取(對商業軟體來說特別有需求),也可以提升執行的效能。有許多公司或團體開發PHP的編碼器,將PHP程序編譯成位元組碼(byte code),再透過伺服器上安裝對應的程序來執行PHP腳本。
除了透過編碼器加速之外,PHP還可以透過動態的快取機制來提升速度,加速工具有商業版的,例如Zend Platform,也有開放源代碼的加速軟體如eAccelerator、APC、XCache。
[編輯] 樣板引擎
樣板引擎讓PHP應用程序可以做邏輯和使用介面上的分離,讓程序開發更容易進行,目前比較受歡迎的樣板引擎是PHP官方開發的Smarty。不過樣板引擎有效能上的爭議,因為PHP本身就是一個樣板引擎,使用樣板引擎反而變成「重新發明了輪子」(reinventing the wheel)。樣板引擎最主要的好處就是讓不懂PHP程序碼的人也可以參與使用介面的開發,因為樣板引擎的語言遠比PHP簡單。
[編輯] 未來發展
[編輯] PHP 5.3
命名空間(namespaces)原本預計在PHP 6提供支持,現在可能改至PHP 5.3就支持[29
Ⅲ php是什麼意思
PHP(PHP: Hypertext Preprocessor)即「超文本預處理器」,是在伺服器端執行的腳本語言,尤其適用於Web開發並可嵌入HTML中。
PHP語法學習了C語言,吸納Java和Perl多個語言的特色發展出自己的特色語法,並根據它們的長項持續改進提升自己,例如java的面向對象編程,該語言當初創建的主要目標是讓開發人員快速編寫出優質的web網站。 PHP同時支持面向對象和面向過程的開發,使用上非常靈活。
PHP特點:
PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,Linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。
不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
Ⅳ PHP是什麼
PHP,是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛的運用。在HTML文件中,PHP腳本程序(語法類似於Perl或者c語言)可以使用特別的PHP標簽進行引用,這樣網頁製作者也不必完全依賴HTML生成網頁了。由於PHP是在伺服器端執行的,客戶端是看不到PHP代碼的。PHP可以完成任何CGI腳本可以完成的任務,但它的功能的發揮取決於它和各種資料庫的兼容性。 PHP除了可以使用HTTP進行通信,也可以使用IMAP,SNMP,NNTP,POP3協議。