PHP

From Wikipedia, the free encyclopedia

Remove ads

PHPPHP:Hypertext Preprocessor)是一種徠電腦裏執行嗰腳本語言,主要用來處理動態網頁,也包含命令列執行嗰介面(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]

Remove ads

開發歷史

Thumb
PHP的發明人Rasmus Lerdorf
Thumb
Zend Technologies的創辦人之一 - Andi Gutmans
Thumb
Zend Technologies的創辦人之一 - Zeev Suraski

PHP起頭是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 5有無數新嗰特色,同強化嗰物件導向功能、引入PDO(PHP Data Objects,一箇存取資料庫嗰延伸函式庫)、還有無數效能嗰加強[8]。昶PHP 4不再更新爻,為了鼓勵用戶轉去PHP 5。[9][10]

2008年PHP 5成了PHP唯一維護當中嗰穩定版本。轉日嗰PHP 5.3會加進Late static binding搭別樣一許功能嗰強化[11][12]

PHP 6嗰開發也徠塝進行當中,主要嗰改進有移除register_globals[13]magic quotesSafe mode嗰功能。[9][14]

版本歷程

更多信息 代表意義 ...
更多信息 主要版本, 次要版本 ...
Remove ads

應用

PHP是一嗰應用範圍猴廣嗰語言,特別徠網路程式開發方面。一般來講PHP都徠伺服器端執行,通過執行PHP嗰程式碼做成網頁畀瀏覽器讀,還好用來開發命令列腳本程式搭使用者端嗰GUI應用程式。PHP好徠無數弗同種伺服器、作業系統、平台裏執行,也好搭無數資料庫系統做隊用。用PHP甮解鈔票,官方組織PHP Group提供全嗰程式原始碼,使用者好改、編譯、擴充爻用。[26]

安全

National Vulnerability Database嗰數據顯示,搭PHP有告嗰資料庫攻擊比例是:20% 2004, 28% 2005, 43% 2006, 36% 2007, and 35% 2008[27]。其中無數嗰漏洞都好通過遠程操作完成,如:黑客好用網絡連接攻擊伺服器,達到盜取或毀者壞數據,發送垃圾郵件或者進行拒絕服務攻擊

語法

PHP嗰語法照PerlC語言樣,還好嵌進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)[28]

變數

PHP裏向,變量用「$」加變數嗰名字表示。變數嗰名字用大小寫是弗樣嗰。

好用嗰變數名字是用字母或者底線開頭,後臗管幾嗰字母、數字或者底線都嘸告,PHP也支持用多字節文字當變量名,阿便是講漢字也好用。[29]

物件導向

PHP從PHP 3起便有基本嗰物件導向(Object oriented)特性,一直到PHP 5畀物件導向部份轉寫寫爻之後,PHP嗰物件導向功能哈算蠻完善。昶好講PHP是一個有完整物件導向功能嗰語言。

Remove ads

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,也有開放原始碼嗰加速軟體如eAcceleratorAPC

XCache

樣板引擎

樣板引擎讓PHP應用程式好畀邏輯介面搭使用介面兩嗰分開,讓程式開發進行還省力,目前人蠻中意嗰樣板引擎是PHP官方開發嗰Smarty。不過樣板引擎嗰效能有爭議,因為PHP本身便是一箇樣板引擎,用樣板引擎反而變成「轉發明擂盤」(reinventing the wheel)。樣板引擎頂好嗰便是不懂PHP程式碼嗰人也好用介面來開發,因為樣板引擎嗰語言比PHP還簡單。

Remove ads

未來發展

PHP 6

  • 支持Unicode
  • 移除ereg擴展, 'register_globals', 'magic_quotes'搭'safe_mode'; Alternative PHP Cache;Removal of mime_magic and rewrite of fileinfo() for better

MIME support[30]

  • var成為public嗰別名,徠類裏var聲明變成public。
  • register_long_array馱爻, PHP5默認是關牢嗰, PHP6乾脆畀伊馱及爻。
  • 別樣改進

參考資料

外部鏈接

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads