當前位置:編程學習大全網 - 源碼下載 - php是

php是

PHP 是壹種流行的開放源代碼的腳本語言。PHP早期的縮寫是“Personal HomePage”,現在官方正式名稱為“PHP: Hypertext Preprocessor”的遞歸縮寫。

PHP主要用於服務器端應用程序及動態網頁上,但是也可以用在命令列上執行,或是開發獨立的窗口程序接口(GUI)

開發歷史

1994年,加拿大籍的程序設計師Rasmus Lerdorf開發了壹組以C語言為基礎的CGI程序,目的是要取代壹些用來維護他個人網站的Perl程序,不久之後,他把這些CGI程序公布並取名為"Personal Home Page Tools",這也是PHP名稱的由來。Rasmus Lerdorf壹直維護PHP語言直到PHP第二版,使用的解析引擎為PHP/FI。

[編輯] PHP 3

1997年,Tel Aviv 公司的Zeev Suraski 和 Andi Gutmans 改寫了原本的解析引擎PHP/FI,並把PHP重新命名為"PHP: Hypertext Preprocessor"。在1998年公布了PHP 3提供大眾下載測試,1999年兩人在以色列成立了Zend Technologies公司來投入PHP的開發工作,並且開始制作下壹代的解析引擎 - Zend引擎。

[編輯] PHP 4

2000年5月22日,以Zend引擎 1.0為解析引擎的PHP 4.0 發布。這也是PHP開始大受歡迎的版本,目前PHP 4還有在做安全性的更新,最新的版本是2006年九月發布的PHP 4.4.4版。

[編輯] PHP 5

2004年7月13日,以Zend引擎II為基礎的PHP 5.0 發布,同時也加入了許多新特性:

更完整的面向對象支持:基本上到PHP 5之後PHP才算是比較完整的面向對象語言。

透過新的Zend引擎,提升了PHP執行的速度。

對MySQL數據庫有更完整的支持。

更佳的XML支持。

內建SQLite數據庫(但在PHP 5.1取消了內建,改用擴展函數庫的方式)。

整合了SOAP的支持。

提供許多程序語言有的例外處理功能。

實驗性的介紹新的數據庫存取接口PDO(PHP Data Objects),在PHP5.1則開始缺省安裝PDO。

最新的版本是2006年11月發布的5.2.0

[編輯] 應用

PHP主要應用在網頁服務器,處理使用者的輸入來產生網頁。但是命令列腳本或是視窗程序接口(GUI)的開發也是PHP的主要應用範圍

[編輯] 服務器端腳本語言

PHP最初就是設計成服務器端腳本語言,因此這也是PHP應用最廣的部份。在此領域有許多其他的競爭者,例如ASP.NET、ColdFusion、JSP、Perl、Ruby on Rails等等。

在網絡工業領域,PHP是LAMP架構的其中壹部分,所謂的LAMP是指Linux、Apache、MySQL、以及PHP所組成的網絡環境,提供了許多安全、可靠的網頁應用程序。PHP目前已經是全世界最受歡迎的服務器端腳本語言,跨平臺的特性更是讓PHP廣為流傳,目前***有1800萬臺服務器安裝有PHP。

[編輯] 命令列腳本

PHP也可以用命令列上執行來使用,例如分析紀錄檔、系統管理工作等。這些工作過去都是由壹些其他的腳本語言例如Perl, Python, awk等來執行,PHP的在命令列上的使用則逐漸增加。

[編輯] 視窗程序接口(GUI)

透過和GUI函式庫GTK+的結合,PHP也可以應用在視窗程序接口(GUI)的開發上,目前的應用還不普遍。

[編輯] 語法

Hello World程序

下面是壹個在標準輸出設備上輸出Hello World的簡單程序,這種程序通常作為開始學習編程語言時的第壹個程序:

<?php

echo 'Hello World!';

>

<?

print 'Hello World!';

>

從中我們可以看出,PHP語言是嵌入在“<?php...?>”或“<?...?>” 之間的部分。而這個程序最終結果將是:

Hello World!

但建議您使用 <?php ... ?> 此種方式撰寫您的程序,因為在XML中使用< >作為標簽,在php缺省的設定檔php.ini中,通常此設定值為Off,若您有打開此設定的需要,您可以參見 php.ini 中關於 “short_open_tag = Off ”這部份的設定。

[編輯] PHP相關資源

[編輯] 函式庫

主條目:PHP函式庫列表

內建多樣化的函數是PHP主要的特點之壹,這些開放程序碼的函數提供了各種不同的功能,例如檔案處理、FTP、字串處理、等等。這些函數的使用方法和C語言相近(例如printf),這也是PHP廣為流行的原因之壹。

除了內建的函數之外,PHP也提供了很多延伸函式庫(extension),像是各種數據庫連接函數、資料壓縮函數、圖形處理等等。有些延伸函式庫需要從PECL(PHP Extension Community Library)取得。

[編輯] 原始碼編碼和加速

PHP原始碼是可以直接讀取的,即使放到服務器上執行也是壹樣。雖然讓PHP多了彈性,但相對的會造成安全危機和性能下降的問題。

因此透過PHP編碼器,可以保護PHP的原始碼不被讀取(對商業軟件來說特別有需求),也可以提升執行的效能。有許多公司或團體開發PHP的編碼器,將PHP程序編譯成字節碼,再透過服務器上安裝對應的程序來執行PHP腳本。

除了透過編碼器加速之外,PHP還可以透過動態的快取機制來提升速度,加速工具有商業版的(例如Zend Platform),也有開放原始碼的(例如eAccelerator, APC)。

[編輯] 樣板引擎

Smarty

Smarty是壹個php模板引擎.

更準確的說,它分開了邏輯程序和外在的內容,提供了壹種易於管理的方法,可以描述為應用程序員和美工扮演了不同的角色,因為在大多數情況下 ,他們不可能是同壹個人.例如,妳正在創建壹個用於瀏覽新聞的網頁,新聞標題,標簽欄,作者和內容等都是內容要素,他們並不包含應該怎樣去呈現.在Smarty的程序裏,這些被忽略了.模板設計者們編輯模板,組合使用html標簽和模板標簽去格式化這些要素的輸出(html表格,背景色,字體大小,樣式表,等等).有壹天程序員想要改變文章檢索的方式(也就是程序邏輯的改變).這個改變不影響模板設計者,內容仍將準確的輸出到模板.同樣的,哪天美工吃多了想要完全重做界面,也不會影響到程序邏輯.

程序員可以改變邏輯而不需要重新構建模板,模板設計者可以改變模板而不影響到邏輯

[編輯] PEAR

[編輯] PECL

[編輯] 對PHP的批評

PHP沒有原生支援Unicode或是多位元字集(例如中文、日文、韓文等需要用兩個以上為原來表示的字集),導致用PHP寫的軟件在國際語言化上遇到相當多的困難。

PHP沒有名稱空間(Namespace)的設計,降低了PHP語言設計上的彈性。預計在PHP 6會加入名稱空間的特性。

PHP的函數命名規則非常的混亂,而且許多函數往往作用類似,只是傳遞的參數不同就要分成不同的函數,導致編寫PHP程序時需要做相當多的手冊查詢工作,降低開發的效率。

PHP的魔術引號(magic quotes)功能可以自動處理使用者輸入字串中的跳脫字符,有效避免SQL隱碼攻擊(SQL injection),但是因為不是每個使用者的輸入都會寫入到數據庫,處理這些沒有寫入數據庫的字串便浪費了效能。此外不是每個PHP環境都會開啟魔術引號,程序設計時需要便需要對不同的服務器環境做因應,造成程序設計上的麻煩。魔術引號功能預計將會於PHP 6時取消。

有些PHP延伸函式庫不是執行緒安全(threadsafe),導致PHP安裝在多執行緒的服務器例如Apache 2上會發生不穩定的狀況。

  • 上一篇:操作系統采用了那些體系結構.msdos,linux,windows95,windows nt,viml 370,BSP vn2x,mach,minix
  • 下一篇:股海明燈論壇 黑馬王子 張得壹的 量柱 量線 理論可信嗎?求過來人解惑
  • copyright 2024編程學習大全網