2010年2月4日

PHP手冊(六):PHP能做甚麼?

PHP能做甚麼?


甚麼都行。PHP 的賣點就是伺服端命令稿,因此任何 CGI 程式能做到的,PHP 都可以做。例如收集表單上的資料、動態產生頁面內容,或是接收 Cookie 等等族繁不及備載。以下是 PHP 的三個定位取向:
  • 伺服端命令稿:這是 PHP 最主要的設計目標。語法分析引擎(CGI 或伺服端模組)、網站伺服器、網頁瀏覽器是其能否運作的三個要素。啟動已結合 PHP 的網站伺服器,您就可以利用瀏覽器執行 PHP 程式,並獲得伺服端的處理結果。若您打算在自己的電腦體驗一下 PHP 程式設計,那麼可以參閱「安裝與組態設定」這個章節。
  • 命令列指令稿:您也可以不用任何瀏覽器與伺服器,僅利用語法解析引擎執行 PHP 程式。這樣的概念,就是從 Unix-like 的 Cron 和 Windows 裡的工作排程來的。這一類的程式,也常用在簡單的文字處理工作,若需要了解更多細節,請另行參閱「在命令列使用PHP」。
  • 桌面應用程式:對於撰寫桌面應用程式,設計圖形使用者介面來說,PHP 這個程式語言並非最佳的選擇。不過若您非常了解 PHP,也偏好在用戶端的應用程式裡,結合它的進階功能,甚或您有能力撰寫跨平台應用程式,那麼您就可以用 PHP-GTK。PHP-GTK 是 PHP 的延伸開發架構,若您對此主題有興趣,請另行至他們的網站查閱相關資訊。

PHP 支援所有常見的作業系統,像是 Unix-like、Windows、MacOS X、RISC OS 等等。當然也支援許多網站伺服器,例如 IIS、PWS、Netscape、iPlanet、Oreilly Websiite Pro、Caudium、Xitami、OmniHTTPd 等等。大部分的伺服器,PHP 都有模組可以支援,至於其他種類的伺服器,則是以 CGI 的標準來支援(PHP 也能以 CGI 處理器的模式運作)。

因此,對於 PHP 與作業系統、網站伺服器的搭配選用,是很有自主性的。此外,無論是程序導向、物件導向,亦或二者混合的程式開發方式,您都可以選用。儘管 PHP 4 裡實作的,並非標準的物件導向程式設計功能,但有許多程式庫與大型應用程式(包括 PEAR 在內),都是用物件導向程式設計的原則來撰寫程式碼。PHP 5 也修正了 PHP 4 的 OOP 相關缺陷,而且也導入了完整的物件模型。

PHP 最強大、最具代表性的特色,就是它支援非常多種資料庫,所以若要做一個可存取資料庫的網頁,是非常容易的事。以下所列舉的就是 PHP 目前所支援的資料庫:

  • Adabas D
  • dBase
  • Empress
  • FilePro (唯讀)
  • Hyperwave
  • IBM DB2
  • Informix
  • Ingres
  • InterBase
  • FrontBase
  • mSQL
  • Direct MS-SQL
  • MySQL
  • ODBC
  • Oracle (i7 及 i8)
  • Ovrimos
  • PostgreSQL
  • SQLite
  • Solid
  • Sybase
  • Velocis
  • Unix dbm

我們也有抽象資料庫延伸套件(PDO),您可以透過這個套件存取任何資料庫。另外,PHP 也支援 ODBC(Open Database Connectivity Standard),因此您也可以存取其他支援此標準的資料庫。

PHP 也支援其他協定所提供的服務,例如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM 等等,當然您也可以利用其他協定,打開網路接口並與之互動。PHP 也能夠讓您在任何網頁程式語言之間,透過 WDDX 進行資料交換。甚至也支援了連結其他開發框架的機制,例如您可以直接把 Java 物件實體化為自身的物件來使用,或是利用我們的 CORBA 延伸函式庫來存取遠端物件。

同時,PHP 亦擁有極佳的文字處理功能:透過 POSIX 延伸函式庫或 Perl 的規則表達式解析 XML 檔案。在 PHP 4 的版本中,係以 SAX、DOM 的標準,來支援 XML 檔案的解析與存取,而且您亦可使用 XSLT 延伸函式庫來轉換 XML 檔案。而 PHP 5,則是已在根基穩固的 libxml2 上,針對所有的 XML 延伸函式庫做了標準化,並擴充了 SimpleXML 與 XMLReader 等功能。

最後要補充,但並不重要的,就是我們還有很多有趣的擴充功能:mnoGoSearch 搜尋引擎、IRC Gateway,還有一些壓縮工具(gzip、bz2、zip)、曆法轉換,以及翻譯等等。

如您所見,本文無法詳盡列出 PHP 的所有功能及優點。請另行參考「安裝與組態設定」,還有「函式參考說明」這兩個章節的說明。

2010年2月2日

PHP手冊(五):甚麼是PHP?

甚麼是PHP?


PHP,為 PHP:Hypertext Preprocessor 之縮寫,它是一種多用途的命令稿語言,可內嵌於 HTML 標籤,特別適合用在網站應用程式的開發工作。此程式語言不僅易學,在開放原始碼社群裡,也擁有相當多的資源。

看起來很棒對嗎?但這代表甚麼呢?我們來看一下範例:


就像 C 和 Perl 一樣,PHP也有許多輸出 HTML 的替代指令,在上面這個範例中,我們除了能看到 HTML 標籤之外,似乎還看到程式碼輸出了一個訊息:「Hi! I'm a PHP Script」。在範例中,以啟始及結尾指令()包起來的部分,就是PHP的程式碼,這兩個指令的作用,就是讓網頁知道何時需要執行PHP程式碼。

寫到這裡,不禁讓人產生疑問,PHP 怎麼知道伺服器目前所執行的,是用戶端程式碼(例如 Javascript)?又怎麼知道要把伺服端所產生的 HTML 傳送到用戶端?用戶端可得到程式的執行結果,但卻不用瞭解底層的程式碼如何運作。您甚至可以透過網站伺服器的組態設定,來處理所有包含 PHP 程式的 HTML 檔,當然也不用向使用者解釋這是怎麼辦到的。

PHP的好處在於:對新手而言,非常容易上手;對老手來說,則是有許多進階的功能可以利用。因此不用對PHP提供的多樣功能感到恐懼,放心跳進來吧!不需要花費太多時間,只要幾個小時,您就能寫出簡單的程式。

雖然 PHP 的定位是伺服端的命令稿語言,但您能做的卻不止這些。若您只對網站成是設計有興趣,請另行參閱「PHP能做甚麼?」、「簡易教學」等章節。

PHP手冊(四):入門

入門


  • 簡介
  • 簡易教學
    • 我需要甚麼?
    • 第一個 PHP 網頁
    • 有用的東西
    • 論壇
    • 在新版PHP使用舊的程式碼
    • 下一步?

PHP手冊(三):前言

前言



PHP,為"PHP: Hypertext Preprocessor" 之縮寫,它是一種多用途的命令稿語言,其語法風格與 C、Java、Perl 非常類似。可內嵌於 HTML 標籤,特別適合用在網站應用程式的開發工作。除了容易學習之外,在開放原始碼社群裡也擁有相當多的資源。此語言的主要目的,是要讓開發人員快速產生動態內容的網頁(當然,您也可以利用 PHP 做更多的事)。





本手冊係以函式參考說明為主要架構,此外還包括了語法說明主要功能介紹,以及附錄等內容。


本手冊亦有其它格式,請至此網址下載:» http://www.php.net/download-docs.php,另外在關於本手冊的附件裡,也說明了這份手冊是如何發展的,若您想瞭解 PHP 的發展沿革,亦可參閱相關附件。



作者及撰稿人員


我們要在此特別表揚:目前仍致力於線上手冊維護工作,以及過去曾在本專案貢獻良多的撰稿人員,還有在線上手冊中,持續提供補充說明的匿名人士。對於你們的付出,我們在這裡表示由衷的感激。以下名單所列舉之姓名,皆以字母順序排列。




作者與編輯群


下列都是值得表揚,且對本手冊有影響力的撰搞人員,有些人曾經為這份手冊撰寫新內容,而另一部份的人,仍持續為這項工作付出:

Bill Abt,
Jouni Ahto,
Alexander Aulbach,
Daniel Beckham,
Stig Bakken,
Jesus M. Castagnetto,
Ron Chmara,
Sean Coates,
John Coggeshall,
Simone Cortesi,
Markus Fischer,
Wez Furlong,
Sara Golemon,
Rui Hirokawa,
Brad House,
Pierre-Alain Joye,
Etienne Kneuss,
Moriyoshi Koizumi,
Rasmus Lerdorf,
Andrew Lindeman,
Stanislav Malyshev,
Rafael Martinez,
Rick McGuire,
Yasuo Ohgaki,
Derick Rethans,
Rob Richards,
Sander Roobol,
Egon Schmid,
Thomas Schoefbeck,
Sascha Schumann,
Dan Scott,
Masahiro Takagi,
Michael Wallner,
Lars Torben Wilson,
Jim Winstead,
Jeroen van Wolffelaar
Andrei Zmievski


以下是為本手冊完成重大編輯工作的撰稿人員:

Stig Bakken,
Gabor Hojtsy,
Hartmut Holzgraefe,
Egon Schmid




補充說明維護人員


以下是目前仍在進行維護工作的人員:

Daniel Brown,
Nuno Lopes,
Felipe Pena,
Thiago Pojda
Maciek Sokolewicz


以下是曾經參與補充說明維護工作的成員,他們也相當的努力與用心:

Mehdi Achour,
Daniel Beckham,
Friedhelm Betz,
Victor Boivie,
Jesus M. Castagnetto,
Nicolas Chaillan,
Ron Chmara,
Sean Coates,
James Cox,
Vincent Gevers,
Sara Golemon,
Zak Greant,
Szabolcs Heilig,
Oliver Hinckel,
Hartmut Holzgraefe,
Etienne Kneuss,
Rasmus Lerdorf,
Matthew Li,
Andrew Lindeman,
Aidan Lister,
Hannes Magnusson,
Maxim Maletsky,
Bobby Matthis,
James Moore,
Philip Olson,
Sebastian Picklum,
Derick Rethans,
Sander Roobol,
Damien Seguy,
Jason Sheets,
Tom Sommer,
Jani Taskinen,
Yasuo Ohgaki,
Jakub Vrana,
Lars Torben Wilson,
Jim Winstead,
Jared Wyles
Jeroen van Wolffelaar

PHP手冊(二):版權聲明

版權聲明


©1997 - 2009 PHP 技術文件團隊版權所有

本手冊之流通,皆以「創作通用歸屬許可證 3.0(或更新版本)」所列舉之條款為原則。

本手冊與「創作通用歸屬許可證 3.0」連同發佈。

目前有效之最新版本許可證,請參閱:» http://creativecommons.org/licenses/by/3.0/


若您需要變更本手冊之全文或部份內容,並重新發行,或不修改內容重新對外流通,亦或有任何疑問,請與版權所有者連繫mailto:doc-license@lists.php.net。註:此信箱已加入公開的新聞討論群組。

PHP手冊(一):目錄

PHP手冊


編輯群:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
其他人員
2010-01-01
編修人員:Philip Olson
© 1997-2009 PHP 文件維護團隊

  • 版權聲明
  • 前言
  • 入門
  • 安裝與組態設定
    • 準備工作
    • Unix
    • Mac OS X
    • Windows
    • PECL延伸套件
  • 語言參考說明
    • 基本語法
    • 資料型別
    • 變數
    • 常數
    • 運算式
    • 運算符號
    • 控制結構
    • 函式
    • 類別與物件
    • 命名空間
    • 錯誤處理
    • 參數傳遞
    • 系統及環境變數
    • 錯誤處理函式
    • 介面
    • 選項及參數
  • 安全性
  • 主要功能介紹
  • 函式參考說明
  • 核心應用:專業人員的 Zend 引擎
  • 常見問答
  • 附錄