萬維網介面工具位於︰
PHP 也有一個名為 Zend 的編譯器,可大幅改善表現。首先你在開發、測試和除錯時使用 PHP 命令稿語言。當準備好正式使用時使用 Zend 編譯器產生可迅速執行的執行檔。前身為 Professional Home Pages(PHP)而現在稱為 PHP Hypertext Pre-Processor
初出現時,PHP 是一個以 Perl 寫成小巧簡單的 cgi 包裝器 (wrapper)。這套件最先名為 Personal Home Page Tools,後來變為 Personal Home Page Construction Kit。
另有一工具是寫來簡化在網頁中嵌入 SQL 查詢的工作。它基本上是另一個 CGI 包裝器,能分析 (parsed) SQL 查詢及簡化建立根據這些查詢的表格和列表的工作。 這工具名為 FI (Form Interpreter)。
PHP/FI 2.0 版完全重寫這兩套件,將之合而為一。它進化至可把簡單電腦語言嵌入 HTML 檔中。它籍著把所簡單的命令稿直接嵌入 HTML 檔中,消除大量小型 Perl cgi 程式的需要。這樣會加快你的網頁,因為 fork 多次 Perl 的困擾已經消除。 它也簡化了管理大型網站的工作,因為你可把網頁的所有部分放在一個 html 檔中。加上多種資料庫的支援,可使用資料庫的網頁的開發變得簡單。 很多人覺得嵌入查詢比分別建立 HTML 和 CGI 檔簡單得多。
PHP/FI 已改名為 PHP。
如果你使用 PHP,你首先會注意到它在頁尾加上這網頁曾被瀏覽過多少次的資料 (如果你在在編譯時選取了 access logging)。這只是 PHP 所做的一小部分。 它的另一個重要角色是作為一個表格直譯 cgi 程式 (form interpreter cgi),這也就是首名中 FI 的意思。例如,如果你在一個網頁中建立了一個表格, 你需要一個程式來處理表格上的資料。即使你只想把資料傳送到另一網頁,你也需要 cgi 程式的幫助。PHP 使得取得和處理表格的資料極為容易。
假設你有一張表格︰
<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>
<INPUT TYPE="text" name="name">
<INPUT TYPE="text" name="age">
<INPUT TYPE="submit">
<FORM>
你的 display.html 便可包括類似的東西︰
< ?echo "Hi $ name, you are $ age years old!<p>" >
就是這樣簡單!PHP 自動為每個表格輸入欄位產生一個變數。之後你便可在 ACTION URL
檔中使用這些變數。
在你找出如何使用變數之後的步驟就是在網頁中試用一些邏輯流程標籤。例如, 如果你想根據用者輸入顯示不同訊息,你可使用 if/else 邏輯。在上面的例子, 我們可改變 display.html,使得不同東西會根據用戶輸入顯示出來︰
<?
if($age>50);
echo "Hi $name, you are ancient!<p>";
elseif($age>30);
echo "Hi $name, you are very old!<p>";
else;
echo "Hi $name.";
endif;
>
PHP 提供一種非常強勁的命令稿語言,能做到的事比以上簡單的例子多很多。欲知詳情,
請參閱有關 PHP Script Language 的章節。
你也可使用 PHP 來設定有什麼人能看到你的網頁。這可使用一個內建的設定畫面做到。 例如,籍著它你可指定只有某些網域的人可看到你的網頁, 或建立一些規則來用密碼保護某些網頁。欲知詳情,請參閱有關 Access Control 的章節。
PHP 也有能力接收任何依照 RFC-1867 規定的瀏覽器上傳的檔案。 這特色使用者能上傳文字或二元檔。籍著 PHP 的存取控制和邏輯功能, 你可全面控制淮許誰上傳及上傳後做什麼。欲知詳情,請參閱有關 File Upload 的章節。
PHP 支援 PostgreSQL 資料庫套件。它支援在 .HTML 檔中嵌入 SQL 查詢。
PHP 也支援 mysql 資料庫套件。它支援在 .HTML 檔中嵌入 SQL 查詢。
使用 Apache 伺服器的 cgi 改向模組是執行 PHP 的一個好方法。 請注意你無須擔心改向模組,如果你使用 PHP 的 Apache 模組版本 (Apache module version)。有兩個這類改向模組。一個是 Dave Andersen 開發的︰
它可在以下地方找到 另一個已包括在 Apache 中,名為 mod_actions.c。這些模組極為相似, 只是在用法上有少許差別。兩個都測試過,能和 PHP 順利合作。查看 Apache 的文件關於如何加入一個模組。一般來說,你把模組名稱加到一個名為 Configuration 的檔案中。如果你使用 mod_actions 模組,你要加的一句是︰
Module action_module mod_actions.o
如果你使用 mod_cgi_redirect 模組,加上以下一句︰
Module cgi_redirect_module mod_cgi_redirect.o
重新編譯你的 httpd 及安裝它。要設定 cgi 改向你需要在你的 mime.types 檔中建立新的 mime 類型,或在你的 srm.conf 檔中使用 AddType 指令來加上 mime 類型。所加上的 mime 類型應類似︰
application/x-httpd-php phtml
如果你使用 mod_actions.c 模組,你需在 srm.conf 檔中加上以下一行︰
Action application/x-httpd-php /cgi-bin/php.cgi
如果你使用 mod_cgi_redirect.c 模組,你需在 srm.conf 檔中加上以下一行︰
CgiRedirect application/x-httpd-php /cgi-bin/php.cgi
不要同時使用 mod_actions.c 和 mod_cgi_redirect.c。
安裝及正確設定了這些 cgi 改向模組後,你只需把延伸檔名定為 .phtml, 便可以指定這檔案由 PHP 分析。此外,如果你在 srm.conf 檔的 DirectoryIndex 設定行加上 index.phtml,最上層的網頁便會自動由 php 分析,如果你的 index 檔名為 index.phtml。
你可籍 Netscape Server CGI Redirection 模組來指定自動把對某些延伸檔名的檔案的要求改向給 PHP。這模組可在 PHP 網頁的 File Archieves 中找到。套件中的 README 明確地解釋了如何設定它來用於 PHP。
目前,NCSA 並不支援模組,所以,要使用 cgi 改向的話,你要修改伺服器的原始碼。 一個對 NCSA 1.5 做這工作的嵌補在在 PHP 檔案存庫中找到。
如果你建立了 CGI 版本的 PHP,你只需在指令行輸入 php.cgi filename,而filename 是你想分析的檔案。你可建立獨立的 PHP 命令稿,只需把命令稿 (script) 的第一行寫為類似︰
#!/usr/local/bin/php.cgi -q
“-q”阻止印出 HTTP 標頭。喜歡的話,你可不用這選擇。
PHPGem 是一個 PHP 命令稿,用以加速編寫使用表格的 PHP 命令稿。它可用於不同的 SQL 伺服器,如 PostgreSQL、MySQL、mSQL、ODBC 和 Adabas。 你輸入表格欄位的描述和參數(欄位名稱、欄位的 on/off searching (?) 等等), PHPGem 輸出另一個使用那些表格的 PHP 命令稿(檢視/加/修改/刪除/重覆內容和搜索)。 PHPGem 可使用多層巢狀表格 (multi-level nested tables, ??)。PHPGem 容許你指定每個表格每個欄位每人旳存取控制。PHPGem 也支援影像。
PHPGem 在 http://sptl.org/phpgem 找到。