PHP

**PHP**（**''P**HP：**H**ypertext **P**reprocessor*）是一種徠電腦裏執行嗰[[腳本語言]]，主要用來處理[[動態網頁]]，也包含[[命令列]]執行嗰介面（command line interface），或者產生[[圖形使用者介面]]（GUI）嗰程式。

PHP頂早是[[:en:Rasmus Lerdorf|Rasmus Lerdorf]]徠1995年朞發明嗰，到昶朞PHP嗰標準䜒PHP Group搭開放原始碼社群維護。PHP用PHP License做許可協議，不過箇協議限牢用PHP名稱，怪得搭開放原始碼嗰許可協議[[GPL]]不合。

PHP嗰應用範圍猴大，特別徠網頁程式嗰開發裏。一般來講PHP都徠網頁嗰伺服器裏執行，通過執行PHP程式碼先畀用戶要流覽嗰網頁做起。PHP好徠蠻多嗰伺服器搭作業系統裏執行，再加之PHP白用甮鈔票。根據2007年4月嗰統計資料，PHP有鉸得2000多萬嗰網站搭100萬部伺服器裏。

== 開發歷史 ==




*PHP*起頭是Personal Home Page箇省講，是Rasmus Lerdorf為了維護個人網頁，用c語言開發箇一許[[CGI]]工具程式集，代箇原來用嗰[[Perl]]程式。頂早許工具程式馱來顯示Rasmus Lerdorf嗰個人履歷，還有統計網頁嗰流量。後晚朞渠畀許程式搭一許表單直譯器整合起，名字PHP/FI。PHP/FI搭資料庫好連接，生成省力嗰動態網頁程式。Rasmus Lerdorf徠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 5有無數新嗰特色，同強化嗰[[物件導向]]功能、引入PDO（PHP Data Objects，一箇存取[[資料庫]]嗰延伸函式庫）、還有無數效能嗰加強。昶PHP 4不再更新爻，為了鼓勵用戶轉去PHP 5。

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

PHP 6嗰開發也徠塝進行當中，主要嗰改進有移除<code>register_globals</code>、<code>magic quotes</code>和<code>Safe mode</code>嗰功能。

=== 版本歷程 ===



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

== 安全 ==
据[[National Vulnerability Database]]嗰數據顯示，搭PHP有告嗰數據庫攻擊比例是：20% 2004, 28% 2005, 43% 2006, 36% 2007, and 35% 2008。其中無數嗰漏洞都好通过远程操作完成，如：[[黑客]]好用网络连接攻击服务器，达到盗取或毁者坏数据，发送[[垃圾邮件]]或者進行[[拒绝服务攻击]]。

== 語法 ==
PHP嗰語法照[[Perl]]、[[C語言]]樣，還好嵌進[[HTML]]裏，下底是一嗰省力嗰[[Hello World]]程式：
<syntaxhighlight lang="php">
 <?php
    echo 'Hello World!';
 ?></syntaxhighlight>

PHP剖析引擎單清剖析*'**之間嗰程式碼，嘸徠**'''裏嗰內容會直接送出去，所以講好用下底嗰方式畀PHP嗰程式碼嵌進HTML裏：

```php
<?php
 //-PHP程式碼
 ?>
 html內容
 <?php
 //-PHP程式碼
 ?>
```


但徠判斷語句裏嗰HTML代碼勿會直接送出去：

```php
<?php
 if (false) {
 ?>
 HTML Code
 <?php
 }
 ?>
```


PHP好用三種註解嗰形式：C搭C++用嗰「/*...*/」還有「//」，還有Perl嗰「#」。

### 類型
PHP主要有下底四樣标量類型：
* 整型（integer）
* 浮点型（float）
* 布尔型（boolean）
* 字符串（string）
兩樣複合類型：
* 数组（array）
* 对象（object）
兩樣特殊類型
* NULL
* 資源 (resource)

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

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

### 物件導向
PHP從PHP 3起便有基本嗰物件導向（Object oriented）特性，一直到PHP 5畀物件導向部份轉寫寫爻之後，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本身便是一箇樣板引擎，用樣板引擎反而變成「轉發明擂盤」（）。樣板引擎頂好嗰便是不懂PHP程式碼嗰人也好用介面來開發，因為樣板引擎嗰語言比PHP還簡單。

## 未來發展

### 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
* var成為public嗰別名，徠類裏var聲明變成public。
* register_long_array馱爻, PHP5默認是關牢嗰, PHP6乾脆畀伊馱及爻。
* 別樣改進

## 參考資料




## 外部鏈接
* PHP首頁
* PHP wiki
* PHP-GTK首頁
* PHP CodeIgniter
* PHP相關自由軟體
* PHP代码压缩