如今當提到 Web 開發時,您有許多選擇。這些方法中許多都涉及到預處理 — 即,利用特定的標記將代碼嵌入到 HTML 頁面中,這些標記告訴預處理器,它們包含代碼,並且應對它們作出處理。與 CGI 非常相似,這些代碼在服務器上運行,並返回一些內容,這些內容表現為發回給浏覽器的結果 HTML 頁面的部分外觀。開放源代碼腳本語言 PHP 和 Microsoft 的 ASP.NET 框架中的語言都屬於這種類型;JavaServer Pages (JSP) 和 Perl/Mason 也以這種方式運行。
在本文中,我將重點講述 PHP — Oracle 已選擇合並到其產品中的技術 — 和 ASP.NET。我將概述兩者的各種優勢和弱點,並著重討論那些將幫助您決定開發項目應選擇哪種技術的因素。有很多因素需要考慮,不同的項目可能訴諸於不同的技術。總之,您將看到在價格、速度和效率、安全性、跨平台支持等方面的逐項比較,以及開放源代碼解決方案的優勢。
ASP 最新的版本 ASP.NET 並不完全與 ASP 早期的版本後向兼容,因為該軟件進行了完全重寫。早期的 ASP 技術實際上與 PHP 的共同之處比與 ASP.NET 的共同之處多得多,ASP.NET 是用於構建 Web 應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。ASP.NET 可以使用腳本語言(如 VBScript、JScript、Perlscript 和 Python)以及編譯語言(如 VB、C#、C、Cobol、Smalltalk 和 Lisp)。新框架使用通用語言運行環境 (CLR);先將您語言的源代碼編譯成 Microsoft 中間語言代碼,然後 CLR 執行這些代碼。
這個框架還提供真正的面向對象編程 (OOP),並支持真正的繼承、多態和封裝。.NET 類庫根據特定的任務(例如,使用 XML 或圖像處理)組織成可繼承的類。
除了編程語言和方法之外,數據庫訪問也是要著重關心的一個因素。當您用 ASP.NET 編程時,可以用 ODBC 來集成數據庫;ODBC 提供了一組一致的調用函數來訪問您的目標數據庫。
ASP.NET 的優勢很明顯在於它簡潔的設計和實施。這是面向對象的編程人員的夢想:語言靈活,並支持復雜的面向對象特性。在這種意義下,它真正能夠與編程人員現有的技能進行互操作。
ASP.NET 的另一個優勢是其開發環境。例如,開發人員可以使用 WebMatrix(一個社區支持的工具)、Visual Studio .NET 或各種 Borland 工具(如 Delphi 和 C++ Builder)。例如,Visual Studio 允許設置斷點、跟蹤代碼段和查看調用堆棧。總而言之,它是一個復雜的調試環境。許多其他第三方的 ASP.NET IDE 解決方案也將必然出現。
但您得到了強健性,就將以損失效率為代價。ASP.NET 在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於 Web 的應用程序,這些局限可能是一個嚴重的問題,因為在 Web 上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為 Web 服務器上的一個問題。
PHP 是基於預處理 HTML 頁面模型的一種腳本語言。當 Web 服務器中的 PHP 預處理器發現像下面這樣的 PHP 語言標記時,將調用 PHP 引擎來執行該代碼:
<?php
some code here
?>
任何使用過命令式編程語言的編程人員都會對 PHP 非常熟悉;您會發現它與 Perl、C 和 Java 在語法上的相似處。嚴格來講,Java 是一種命令式編程語言,但它也利用了面向對象的結構和概念。PHP 在適宜的時候借鑒了這種結構,但它不是一種純粹的 OOP 語言。
在上面對 ASP.NET 的討論中,我提到了 ODBC 驅動程序,以及在考慮數據庫抽象的情況下如何構建應用程序。在 PHP 中,您也可以使用 ODBC 與數據庫對話,因此您已經有了一系列支持的數據庫可供選擇。也有 MySQL、Oracle 和 Postgres 的原生驅動程序。此外,如果要使用 Oracle,則有一個特殊的 OCI8 庫將提供對 Oracle 更多訪問功能,從而允許您使用諸如 LOB、BLOB、CLOB 和 BFILE 之類的特性。
這時您可能會問“為什麼與數據庫相關的資料庫被稱為 PHP 的特性?”數據庫抽象或獨立性是您在設法構建使用多種數據庫或需要在數據庫間移植(例如,從開發到投產時的移植)的應用程序時所要考慮的一個因素。而這些確實是應該關心和考慮的。
但正如 Tom Kyte 在他的新書 — Effective Oracle by Design (Oracle 出版社) — 中指出的那樣,數據庫相關性將成為您真正的目標,因為這將使您在該技術中的投資最大化。如果您對 Oracle 進行一般的訪問 — 無論通過 ODBC 或 Perl 的 DBI 庫,那麼您將無法使用其他數據庫所不具有的特性。此外,優化查詢在各個數據庫中各不相同。
Zend Technologies 是一家商業軟件公司,它對 PHP 作出了重大貢獻。它創建了一個稱為 Zend Studio 的商業開發環境,這個環境包含了一個復雜的調試器、一個監測器和其他特性。該公司還構建了免費的 Zend Optimizer,它與 Zend Encoder 結合使用來編譯 PHP 代碼,以提升性能。還有其他商業產品,如 Zend Performance Suite,它可以緩存預編譯的 PHP 頁面,從而進一步顯著提升總體性能。
到測試版 4 為止,PHP 5 仍然有一些缺點,包括缺少異常和基於事件的錯誤處理例程 — 它們能夠中斷正常的程序流,並將代碼跳轉到一個特殊的錯誤處理部分。Java 也提供了用於錯誤處理的異常,而 C++ 通過 try、catch 和 throw 語法提供異常處理。當然,您仍然可以在 PHP 中管理錯誤,但其結構不是標准化的,因而使得編程人員必須使用自己的工具來決定執行錯誤處理的方式,這將導致更低的一致性並往往導致推倒重來。
另一個弱點是 PHP 的函數名是不區分大小寫的。雖然這不是一個嚴重的缺點,但有些程序員可能會覺得這一特性很討厭。
不過,我的確對 PHP 的對象模型心存疑慮。PHP 不是專門設計為一種面向對象的語言。這些特性中的一部分是後來添加的 — 盡管注意了保持與 PHP 3 的後向兼容性,因此兩種模型的特性都留有一些。實際上,在 PHP 5 中這些弱點中的許多都得到了解決。請留心關注。
PHP 在一些領域中缺少什麼,它就會在擅長的領域中迅速地彌補什麼。價格合理,因此您不需要擔心許可問題。它也是開放源代碼的,因此整個社區將密切關注開發過程:發現錯誤並將其修復。如果有一個特性您不喜歡,那麼您可以修改代碼。此外,PHP 可與 Apache 自然結合:它可以作為一個模塊編譯,或直接編譯成 Apache 二進制文件。
但在 Apache 上運行意味著,利用 PHP,您能夠利用您已經在任意服務器投資,這是因為 Apache 能夠運行在 Windows、Linux、Solaris 和各種其他 Unix 平台上。此外,使用擁有 Apache 的跟蹤記錄的 web 服務器意味著安全性能夠保持在最高的優先級上。最後,PHP 擁有更小的代碼路徑,這意味著更少的分析和執行 PHP 頁面服務器端代碼,這將帶來更高效的內存和使用率以及更快的運行。
在 PHP 5 中新增了哪些特性?
PHP 5 的第 4 個測試版在 2003 年 12 月底推出,更改日志清楚地顯示已發現許多錯誤並已將其消除。雖然它仍在進行測試,但它的所有新特性和進步都確實值得關注。
PHP 5 的主要新成就在於它的異常處理和一個新對象,這個新對象引入的特性賦予了 PHP 真正的 OOP。異常處理無疑是 PHP 4 中最顯著的缺憾之一,而 PHP 5 對異常處理的引入無疑是一個成熟的標志。異常處理意味著您在您的軟件中擁有了根據語言定義的和標准化的錯誤處理方法。只需使用 try、catch 和 throw 方法,您的 PHP 代碼就變得更加強健和簡潔。
<?phpclass blue {function openFile ($inFile)
{if (file_exists ($inFile))
{# code to open the file here} else {throw new Exception ("Cannot open file:$inFile");
} }}
$blueObj = new blue ();try {$blueObj->openFile ('/home/shull/file.txt');}
catch (Exception $myException) {echo $myException->getMessage ();
# rest of exception handling code here}# rest of blue methods here?>
新的對象模型為用 PHP 編寫的程序帶來許多積極的影響。在 PHP 4 中,當把將一個對象傳遞給函數或方法時,是通過值來傳遞的 — 除非您另行顯式告知 PHP。這個過程意味著必須復制對象的一個副本(內存中的所有數據結構)。這個步驟使用內存,使得訪問變慢和擁塞。而在 PHP 5 中,通常通過引用傳遞對象。
PHP 5 中新的面向對象的特性(包括構造器和析構器)值得關注。與 C++ 和 Java 相同,它們提供了一種標准方法,即通過一個構造器方法來創建對象、分配內存和執行任何必要的設置,並通過一個析構器方法來執行清理。
PHP 5 還引入了對類中方法和變量的更精細控制。在 PHP 4,一切都是公有的:您可以從類外或在繼承類中訪問您類中的變量。在 PHP 5 中,您仍然可以使變量或方法為公有,但您也可以使它們為私有,以使得只能在類本身中使用它們。還可以將它們保護起來,也就是說,可以在類內或在子類中查看方法和變量。
此外,PHP 5 引進了類型提示或更好的類型檢查。當您將一個對象傳遞給一個例程時,PHP 能夠檢查它是否是正確的類型,並在檢查失敗時產生類型不匹配錯誤。
由於還有其他特性(如靜態方法和變量以及抽象類),因此請務必查看文檔,以獲取詳細信息。
ASP.NET 官方要求您使用 IIS。不幸的是,IIS 易受攻擊的歷史由來已久,這使得許多管理員不願意部署它來處理 Web 站點。這些弱點是因為 Microsoft 的缺陷或是因為 IIS 是黑客們攻擊的目標無關緊要:這些系統有被黑或被攻擊的歷史。PHP 也運行在 Apache 上,Apache 快速並且是開放源代碼的,並擁有很好的安全性記錄。此外,正如我提到過的,Apache 可以在許多平台上運行。
如果您在考慮 ASP.NET,但您想用 Apache 作為 Internet 門戶,那麼很幸運您可以有一些選擇。首先,您可以使用 Apache 將請求轉發給在另一台計算機上內部運行的 IIS。然後 Apache 處理靜態內容,並將 aspx 內容傳送給 IIS 服務器(不暴露給 Internet)。
不過,如果您想利用 Apache 承載 ASP.NET,那麼提供了一些選項,這些選項 Microsoft 可能支持也可能不支持。作為最後一種選擇,有 Ximian 的 Project Mono,它致力於構建一個開放源代碼模塊。請浏覽 www.go-mono.com,以獲取更多信息。
您在選用 PHP 或 ASP.NET 時首先要考慮因素之一就是與數據庫的連接。不過,利用 ASP.NET 更復雜,因為您可以從許多備選語言中選擇任意一種語言。當然,這些代碼示例將必須嵌入到 HTML 頁面、實例化的類等之中。不過,以下信息將使您對二者的編碼風格有所了解。
下面是一個 PHP 5 類,它提供了一個 Oracle 連接和斷開例程,用以演示利用 PHP 5(也可以使用其他驅動程序(如 ODBC 驅動程序)和通用的數據庫接口)與 Oracle 連接的一種方式:
class oracle_object {
protected $theDB;
protected $user;
protected $pass;
protected $db;
function __construct($u, $p, $d) {
$this->user = $u;
$this->pass = $p;
$this->db = $d;
}
function db_open () {
$theDB = @OCILogon($this->user, $this->pass, $this->db);
db_check_errors($php_errormsg);
}
function db_close() {
@OCILogoff($theDB);
db_check_errors($php_errormsg);
}
function __destruct () {
print ("so long...");
}
}
如果您希望利用 VB.NET(Visual Basic 是 Microsoft 的默認 .NET 編程語言)與 Oracle 連接,那麼請看一下這個來自 MSDN 的示例:
Imports System
Imports System.Data
Imports System.Data.OracleClient
Imports Microsoft.VisualBasic
Class Sample
Public Shared Sub Main()
Dim oraConn As OracleConnection = New OracleConnection
("Data Source=MyOracleServer;Integrated Security=yes;")
Dim oraCMD As OracleCommand = New OracleCommand
("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn)
oraConn.Open()
Dim myReader As OracleDataReader = oraCMD.ExecuteReader()
Do While (myReader.Read())
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
myReader.GetInt32(0), myReader.GetString(1))
Loop
myReader.Close()
oraConn.Close()
End Sub
End Class
假定您還沒有決定選用 PHP,我可以斷言 PHP 的優勢遠遠超過它的弱點。(請參見表 1 中的概要。)這些優勢歸結為價格、速度和效率、安全性、跨平台適用性和開放源代碼機遇。它惟一的弱點是缺少一種純粹和完美的 OOP 實現,不過,這是一個很小的缺點。雖然語言結構的確有幫助,但好的編碼最終是由實踐、執行、好的習慣和規范帶來的。
表 1
PHP 4
PHP5
ASP.NET
軟件價格
免費
免費
免費
平台價格
免費
免費
$$
速度
強
強
弱
效率
強
強
弱
安全性
強
強
強
平台
強
強
弱(僅用於IIS)
平台
任意
任意
win32(僅用於IIS)
是否提供源代碼
是
是
否
異常
否
是
是
OOP
弱
強
強
在此,我們不應簡單地考慮初始投資 — 對 PHP 而言,這很明顯是免費的 — 還應考慮實施、維護和調試的成本。對 PHP 而言,您可能需要購買 Zend 優化引擎。然而,使用 ASP,您將從一開始就進行投資,而且您還要為附加的技術 — 例如,執行圖形處理的庫 — 支付費用。但從長遠來看,PHP 將不會逼迫您升級並向您收取更多的許可費用。接觸過復雜許可的每一個人都知道,很多公司花費大量的時間和金錢僅是為了確保其順應性。此外,當在獲得錯誤修復的時間上,您得到的反應也有所不同。這當然將轉化成時間,時間又將轉化成總體開發的成本。
正如我先前提到的,ASP.NET 是一個允許您使用各種編程語言的框架。此外,它據稱擁有一個極好的面向對象模型。盡管所有這些都是真的,但在考慮到速度時,它卻是不利的。基於以上原因,在 ASP.NET 中運行 ASP 頁面與在 PHP 引擎中運行等效的 PHP 頁面相比需要執行更多代碼。PHP 是一種“快速粗糙”的解決方案,是為完成工作而設計的解決方案。雖然自 2.0 和 3.0 版本以來為其增強了許多強健性,但它仍然保留著核心的優化的高速方法。
速度不是惟一要考慮的因素。內存使用率也很重要。
ASP.NET 運行在 IIS 上,而 IIS 已被攻擊了無數次 — 正如每隔一周的 IT 新聞報告所證實的。它已經成為這樣一種負擔,實際上,盡管其耗巨資進行銷售宣傳,但許多 IT 專業人員仍然拒絕用 IIS Web 服務器來開放他們的網絡。而 PHP 使用 Apache。Apache 擁有已被證明的速度、可靠性和穩固的安全性的記錄。請浏覽 www.securityfocus.com,以獲取更多信息。
ASP.NET 在 IIS 上運行,並且開始在 Apache 上運行(Apache 能夠在許多平台上運行)。PHP 從一開始就設計用於和 Apache 一起工作,因此您擁有許多可供選擇的已被證明和可靠的服務器平台。
開放源代碼並不只靠一些異想天開的編程人員或想要節省一些許可費用的公司來開展。當您處理軟件本身的錯誤時,開放源代碼可能成為真正的天賜之物。
在使用 PHP 或 ASP.NET 的情況下,您都會有一個大的用戶群,他們使用軟件並且可能遇到錯誤。使用 ASP.NET,這些錯誤必須通過一個官方程序來通知、修復、測試,並在一個新的補丁或版本中消除。然而,PHP 補丁可以快速地得到修補並發布。目睹開放源代碼發展的任何人都知道,新的版本和補丁通常在幾天內而不是像商業軟件一樣在幾個星期或幾個月內推出。如果這不夠快,那麼您通常可以自己來修補問題(如果必要的話)。
PHP在WEB開發領域的優勢
你當前的位置:嘟妖老 --> 技術文檔全集 在多數WEB開發者眼中,ASP和JSP都被認為是領跑者,而PHP卻被認為是個弱小的“掙扎者”,或者說它是一門被貶低為業余者才使用的語言,不值得參與企業WEB開發的競爭。在我看來,PHP沒有被當作競爭者的理由是評論者缺乏對它的了解,而且也不了解用於WEB開發的其他操作系統。和一些觀點相反,WINDOWS不再占有WEB虛擬主機服務市場的最大份額,我猜想它在WEB開發這一領域裡也在被摧城拔寨。
很顯然,PHP被認為落後ASP和JSP太多,以至於它是沒有什麼用的,但是這恰恰與事實不符。PHP本身就是一門強大的語言。它事實上在每個發行版的LINUX上都有,在MAC OS X上也有。獲取開發和使用PHP代碼的構件(BUILDING-BLOCK)工具和軟件都是免費的。用於開發PHP應用程序的商業集成開發環境(COMMERCIAL INTEGRATED DEVELOPMENT ENVIRONMENTS,IDES)也可以找到這樣的工具有KOMODO(它運行在LINUX和WINDOWS上)和ZEND STUDIO(這個應用程序能夠運行在任何帶有JAVA運行環境的操作系統上)。你幾乎可以在每個WEB虛擬主機上運行由PHP建立的網站,而不要考慮服務器所運行的是什麼操作系統,這一事實讓PHP更加具有吸引力。
先把PHP周圍有什麼忘掉一會兒,而考慮一下PHP自身能夠提供什麼。它是一門強健的服務器端語言,能夠提供相當多的功能,而且能夠迅速地為頁面提供服務。
使用C或者PERL或者具有類似風格和句法的另一種語言的任何用戶都能夠很快上手PHP。盡管它是設計用在WEB上的,但是它也能夠作為命令行語言使用。你正在編寫的WEB應用程序需要每個小時或者每天執行一次某些代碼嗎?使用CRON或者類似的計劃安排管理器,你可以計劃安排PHP代碼在你希望的時候執行,使用普通的命令解釋腳本或者批處理文件就能夠執行這樣的代碼。不需要自動調用浏覽器就能夠查看專門的網頁,從而執行你的事件,也沒有必要依賴來訪者的點擊來告訴你的系統:特定的代碼需要在特定的時候被執行。PHP在這一領域可擴展性的事實是絕對具有吸引力的。
我不是JSP或者ASP的老手,在此我也不想貶低這些語言。相反,我會把注意力放在PHP的好處上。
PHP讓你能夠為網站的訪問者提供本地化的服務。當用戶點擊進入網站的時候,網站會根據他們浏覽器的設置自動地以其母語向其提供頁面。要實現這一點不需要使用用於語言翻譯的煩雜文件,而是使用和本地化的C程序所具有的相同能力,通過一個叫做GETTEXT的系統實現的。如果被請求的語言文件存在,那麼用戶所看到的文本就是其母語;如果語言文件不存在,那麼文本就是缺省的英語或者其他任何你所指定的語言。許多本地化的UNIX應用程序都將GETTEXT作為標准,它讓第三方的翻譯變得輕而易舉。
PHP支持在需要的地方設置和執行命令行程序。使用標准的UNIX DIFF工具,它能夠生成錯誤最後一次修改同要使用電子郵件發送到錯誤的所有者的當前注釋之間的不同。PHP代碼對在系統上所編寫的兩個文件執行DIFF,將其輸出作為輸入,再生成一個要發送的電子郵件。這封電子郵件是通過PHP自己來發送的。
上面的只是我在自己程序裡所用到的強大功能中的兩個,而還其他的功能。例如,你可以:
即時創建簡單的FLASH動畫。
即時創建PDF文檔。
使用高級數學功能,以及面向對象的編程技術。
讀取和寫入到本地和IMAP郵箱。
在PHP裡就可以使用任何標准的INTERNET協議。想要編寫基於PHP的FTP、WEB或者新聞客戶端?沒有問題!只使用PHP你就完全能夠編寫出使用標准TCP/IP套接字的客戶端和服務器,並以此創建自己的協議。
實現對加密的支持,以及對各種數據庫服務器的支持。
我覺得,那些尋找頂級WEB開發語言而排除掉PHP的人是極其短見的。我使用PHP編寫代碼已經有很多年了,無論是像錯誤追蹤系統這樣的高級功能,還是簡單地重復使用頁眉和頁腳這樣的普通功能,我都使用PHP編寫過。我用PHP編寫過半靜態的頁面,也編寫過全功能的多媒體演示。我不是唯一一個使用PHP的人。如果PHP不值得引起注意,如果它只是小兒科或者愛好者的語言,那它為什麼會是在WEB開發上成長最快的語言呢?如果它沒有ASP或者JSP那麼強大,那麼它為什麼會被用在流量巨大WEB網站上?例如YAHOO,據說它就是由PHP建成的。
我敢肯定,ASP 和JSP有它們各自的強項,但是我相信人們是用它們不是因為它們能夠提供比PHP更加強大的功能,而是因為人們已經了解了它們,並希望以自己習慣的方法編寫代碼。排除PHP只能表示對這一語言的無知。
譯者注:這是一篇德國人寫的關於PHP的“長篇大論”,作者在文中把PHP吹的神乎其神,大有一統江湖的架勢。且不去管它觀點是否正確,這麼一篇經典的“吹牛奇文”對我們這些誠惶誠恐的PHP程序員來說,到是非常值得一看的。還是閒話少說,讓我們開始欣賞這騙奇文吧!
定義:PHP是一種簡單的,面向對象的,解釋型的,健壯的,安全的,性能非常之高的,獨立於架構的,可移植的,動態的腳本語言。PHP具有和JAVA類似的Class關鍵字。因為不需要虛擬機,以致速度比JAVA快5倍。PHP正迅速變成一種標准的,多用途的,面向對象的腳本語言。PHP不僅可用來開發Web應用程序,也可以開發普通應用程序。
PHP是一種功能強大的腳本語言。PHP將擊敗PERL/Python並取而代之。PHP是下一代的PERL/Python腳本。PHP可以勝任任何PERL/Python做的工作,並且做的更多,更好,更簡潔!!
PHP是Hypertext Pre-Processor(超文本預處理器)的縮寫,它是一種服務器端的HTML腳本/編程語言。PHP語法上與C相似,可運行在Apache, Netscape/iPlanet, 和 Microsoft IIS Web 服務器上。PHP作為一種工具,可以讓你創建動態的Web頁面。應用PHP的網頁與常規的HTML頁面並無二致,你可以用同樣的方式來創建、編輯它們。PHP允許你直接在HTML文件裡寫入簡單的腳本,這一點與Javascript非常相似。而不同的是,PHP不依賴於浏覽器,是服務器端的語言,而Javascript卻是一種客戶端的嵌在HTML中的語言。概念上,PHP與Netscape的LiveWire Pro產品,Microsoft的ASP以及SunMicrosystem 的JSP相似。
PHP不僅可以用來創建Web應用程序,也可以用來開發普通的單機應用程序。
PHP的強勁之處在於:
·PHP是一項最優秀的技術。其它技術,如PERL,Python, Tcl, VB script, ASP 相對來說,都是陳舊低劣的。即使是Java/JSP,也在PHP之下。
·開放源碼
·廣泛的數據庫連接
·大量的擴展庫
·作為一種多用途的腳本語言,比PERL,VB script, ASP, JSP都要優秀。
為什麼選擇PHP?因為PHP是最好的,原因如下:
·PERL“味道不好”,因為其程序不易閱讀和維護,且不是面向對象的。把PERL忘了,轉向PHP吧。PERL程序員將拋棄PERL,因為他們愛上了PHP! PHP實際上就是“現代版的PERL”,只是名稱不同而已。
·Java 是面向對象的,但速度很慢。Java程序遠行起來很慢,對它唯一的抱怨就是——“Java,真是慢的糟糕”。而且十分復雜(具有許多層,如JVM,JIT 等等)。這往往誘發問題。既然有了Linux,為什麼還要Java呢?
·Python“不錯”,但沒有C語言中的括號和大括號,而這在vi編輯器中對操控代碼非常有用。如果不能利用vi/emacs編輯器搜索括號/大括號的命令迅速操控代碼,那麼就好象斷了手一樣。PHP在技術上比Python更加先進。
·PHP是最好的,因為它面向對象,並且吸收了C/C++/Java/PERL的精華。PHP可以替代PERL,Python, Java,C, C++, awk, Unix shell 腳本,Visual Basic 和其它語言!!PHP直接運行,而且是由C寫成的。
·每一個電腦程序員都知道PHP是最好的,不信問一下你旁邊的程序員。
·只有PHP才能稱雄於21世紀、22世紀以及更遠的將來。
·為什麼我們認為PERL,Python和Java程序員會將歸附PHP,這裡有一個很重要的原因。
以前,世界上許多公司都把PHP當作是一個“高度機密,嚴格保密”的電腦程序語言,但是現在它已經變成最為著名的,在Web, Internet, E-commerce以及 B2B等諸多項目上應用最廣泛的面向對象的腳本語言。即使是在今天,仍有許多競爭性(competing)公司把PHP當作是高度機密的東西,決不向外界(競爭對手)透露半點。
PHP將如同暴風雨一般席卷整個世界,IT工業將為之震驚。PHP的力量在於它是跨平台的,可以運行在任何地方。如Linux,Windows 95/98/NT/2000/XP, Solaris, HPUX 以及各種UNIX。PHP只需寫一次,就可以配置在任何地方。PHP可以運行在Apache,Microsoft IIS等多種Web服務器上。
PHP比Java快5到20倍!!實際的比較測試顯示,PHP的運行速度是Java3.7倍左右。PHP太容易使用了,你可以用它在非常短的時間裡,非常迅速的開發出非常復雜的web,e-commerce和一般的單機應用程序。(在將來,PHP將會模仿Java大多數的功能,相信Java程序員也會喜歡上它。PHP將包含Java中的關鍵字,如class,extends,interface, implements, public,protected, private 等等等等。)
PHP具有面向對象特性,它吸收了Java, C++, PERL 和C的最優秀的部分。PHP可以說是所有腳本/編程語言中的寶石。不久,它就會成為全世界程序員的“麥加聖地”。PHP即可以運行在Window95/NT/2000/XP上,也可以運行在各種UNIX上。
我們將大吃一驚——PHP極有可能成為21世紀的電腦編程語言。
可以使用Zend Optimizer對PHP進行編譯和優化,從而使它運行的更快。PHP4.0中已經集成了Zend Optimizer。 首先,你在開發、測試、除錯過程中,用PHP腳本語言編寫你的應用程序。一旦項目完成,你便可以用Zend編譯器,將PHP文件編譯成運行速度更快的可執行程序。
對於電子商務項目,你一般需要綜合使用PHP(70%),HTML/DHTML/XML(25%)和5%的Javascript(客戶端驗證)。
PHP最初是運行在UNIX平台上的,但是它的移植性很好,也可運行在Windows和IIS Web服務器之上。今天,已有了一大批基於Windows 2000/NT/95/98的PHP用戶,你可以找到大量運行於Windows平台之上的PHP工具。
許多PHP程序員喜歡在Windows上開發他們的程序,完成後再配置在大型的Linux服務器上,如運行Linux的IBM小型機、Compaq DEC Alpha 以及 Sun sparc。
PHP最大的優勢在於,它也可以運行在UNIX/Linux之上,UNIX上的開發者可以為MS Windows下的PHP用戶服務,而Windows下開發的PHP代碼也可以不經過任何改變,就用於UNIX/Linux上。
PHP自身完全是由C語言寫成的,因此可廣泛運行於各種平台之上,如BeOS,UNIX, MS Windows, Apple Macintosh,IBM OS/2 以及其它更多的操作系統。
PHP 運行速度非常快,要比Java快出許多。對於Web開發而言,不如忘了Java/JSP吧!PHP,PHP,到處都將是PHP! PHP也也將變成一種多用途的面向對象的腳本語言。
·PHP主站點:http://www.php.net
·PHP資源:http://ils.unc.edu/web-db/php/links.html
·PHP代碼交換:http://px.sklar.com
·Vex Net:http://www.vex.net/php
在許多國家都有鏡像站點,網址是www.COUNTRYCODE.php.net,其中COUNTRYCODE可以是us,fe,,sk等等。
· http://www.fe.de.php.net
· http://www.sk.php.net
· http://php.iquest.net/
·答疑郵件地址: [email protected]
PHP在Microsoft Windows平台上極受歡迎,而且另人驚奇的是,它比Microsoft自己的Web腳本語言還要流行。原因在於PHP是面向對象的腳本語言,而ASP卻不是。PHP具有大量可重用的類(對象),在Windows平台上,PHP要比ASP快許多,而且比ASP具有更多的功能和特色。PHP比ASP更健壯,更可靠,更具威力。由於PHP可運行於MS Windows,Linux, Mac OS和所有的UNIX,所以它具有一個龐大的用戶群。而其最大的優勢在於,你可以在Windows上開發程序,然後配置在UNIX/Linux上,反之亦然。
Windows98/NT/2000下的PHP用戶比其它操作系統都要多,那是因為在Windows98/NT/2000上安裝PHP很簡單。
PHP有可執行的安裝程序,你只要雙擊exe文件,2分鐘內就可以自動安裝好。可從如下站下載可執行的PHP安裝程序:
·Windows下的PHP可執行安裝程序:http://php.weblogs.com/easywindows
·Windows平台下的PHP資料:http://php.weblogs.com
·PHP在Windows下的安裝與配置:http://www.php.net/manual/install-windows95-nt.php
·PHP Triad可以在Windows平台上安裝完整的PHP服務環境:http://www.phpgeek.com
在Windows上運行PHP,你需要一個Web服務器,你可以使用微軟的IIS,也可以使用免費的Apache 。因為可以通過Apache的安裝文件setup.exe進行安裝,可以為你節省許多時間。
PHPTtriad是一個包括Apache、PHP、MySQL的軟件包,可從http://www.phpgeek.com/phptriad.php 或其鏡像站點http://sourceforge.net/projects/phptriad下載。我強烈推薦使用PHPTtriad,它在Windows用戶中極受歡迎(已被下載了幾百萬次)。
Apache 二進制程序: http://httpd.apache.org/dist/httpd/binaries/win32
SQL服務器可以安裝在不需要運行Windows的機器上,而你也需要一個SQL服務器來作Web開發。我推薦你在很老的PC上(如Pentium或486)安裝Redhat Linux和PostgreSQL RPMs。你數據庫並不需要任何Windows圖形界面,可以在控制台直接啟動PostgreSQL。PostgreSQL的速度大概是Oracle和MS SQL server的3倍。
PHP的PostgreSQL支持庫是由Adam Sussman編寫的,他的郵件地址是:[email protected]
支持Windows NT/2000的PostgreSQL可從http://www.askesis.nl下載。可從http://www.geocities.com/alavoor/HOWTO/pgsql/PostgreSQL-HOWTO.html獲取PostgreSQL的使用指南 。
參見PHP主站點www.php.net上的安裝指南和說明,或所下載的軟件包中的INSTALL文件。
用PHP的面向對象機制實現一個項目的步驟如下:
·首先,你需要連接一個數據庫SQL服務器——有下面兩個選擇:
ADODB (Active Data Objects Data Base),即動態數據對象數據庫(http://php.weblogs.com/adodb)
Metabase(Database independent access and management),即數據庫獨立訪問和管理(
http://phpclasses.upperdesign.com/browse.htm/package/20)
·第二,你需要一些通用的PHP類來創建表單、表格和其它HTML對象。這些都可以從PHP classes網站上獲取(http://phpclasses.upperdesign.com)。可以參考一下該網站的下載排行榜。也可以從網站http://www.milkywaygalaxy.freeservers.com/上獲取表單類、模板類等。
·第三,通過對這些通用類的繼承,來設計和創建自己的PHP類。
·第四,使用模板類來分離顯示樣式和業務邏輯,可參見http://www.phpclasses.com
·第五,使用IDE工具進行開發(參見PHP IDE一節)。
·最後,最好把你代碼封裝成類,這樣可以實現代碼的易維護性和可重用性。
·支持標准CGI,FastCGI和Apache模塊——作為一個標准的CGI程序,PHP可以安裝在運行任何Web服務器的任何UNIX機器上。 PHP支持新的FastCGI標准,通過這一機制,PHP獲得了速度上的提高。 當配置成Apache模塊時,PHP便成了功能極為強大的,運行速度如閃電般快的新的選擇。
·訪問日志——通過PHP的日志訪問功能,用戶可以維護他們的點擊次數和日志。 該功能提供了實時的訪問監測,而不以任何方式使用系統的中心訪問日志文件。日志浏覽腳本為個人用戶擁有的一組頁面提供快速的訪問摘要。除此之外,該程序包還可以通過配置為每一個頁面生成一個頁腳(footer)來顯示訪問信息。可參考文章後面的例子。
·訪問控制——個內建的基於Web的配置“篩”,可實現對訪問控制的配置。這樣,才有可能為所有或部分Web頁面創建一套規則,使得擁有這些頁面的特定的人可以對他的網頁設置各種限制,如,什麼人可以訪問這些頁面以及這些頁面以怎樣的一種方式被訪問。對頁面的設置有許多方式,如密碼保護、完全限制、登錄失效、或者更多的以客戶的域、浏覽器、e-mail地址甚至涉及的其它文檔為設置依據。
·支持PostgresSQL——PostgresSQL是一個先進但是免費的RDBMS(關系數據庫管理系統)。PHP支持在.html文件中直接嵌入PostgresSQL的“SQL 查詢語句”。
·支持RFC-1867文件上傳——文件上傳是Netscape2.0新增的一項功能。用戶可以將文件上傳到Web服務器。
PHP提供了實際的MIME解碼功能,使得文件上傳成為可能。PHP還提供額外的框架,可對收到的上傳文件進行一些有用的處理。
·基於HTTP的身份驗證控制——PHP可以用來為Apache服務器創建自定義的基於HTTP的身份驗證機制。
·變量、數組,聯合數組(associative arrays)——PHP支持typed(這個單詞不知道怎麼譯,望高手指點)變量,數組,甚至Perl風格的聯合數組。而這些都可以通過GET或POST方法的表單從一個頁面傳遞到另一個頁面。
·條件語句、While循環——PHP是一種類似C語言的功能完整的腳本語言。你可以使用if/then/elseif/else/endif條件語句,以及While循環和Switch/case語句來安排HTML頁面顯示的邏輯流程。
·擴展的正規表達式——正規表達式頻繁地應用於模式匹配、模式替換以及一般的字符串操作。PHP支持所有常用的正規表達式操作。
·原始的HTTP Header控制——根據某種條件,讓Web頁面能夠發送自定義的原始HTTP頭對一些高級的網站設計來說是非常必要的。一個常見的用法就是發送一個Location:URL頭,把客戶端的請求重定向到另外一個URL上。也可以用來關閉緩存或操作頁面最新更新的HTTP頭。
·動態創建GIF圖片——PHP已經支持Thomas Boutell的GD圖片庫,可以實現GIF圖片的動態創建。
·支持ISP“安全模式”——PHP支持獨特的“安全模式”,從而使得多個用戶運行同一台服務器上的PHP腳本變得更加安全。
·新發布的PHP中又增加了許多新的功能。可訪問PHP的主站點http://www.php.net。
·PHP是免費的!——這是最後一個重要特色。PHP的程序包是完全免費的。它遵守GNU/GPL。你可以把這個軟件用於實現商業或者其它任何目的。
PHP是一種已經確定下來的,用於創建動態網頁的服務器端的腳本語言。作為一種為Web而特別設計的語言,PHP帶來了許多商業機構渴望的特性。
·維護周期短
·快速的開發時間
·非常高的性能
PHP可以在所有主要的操作平台(UNIX,Windows,甚至是大型機)上運行,而且生來就支持各種流行的數據庫。所有這一切決定它是一種進行Web開發的非常理想的選擇:曾有運用PHP技術的網上商店稱,幾天內就能夠開發出可重用的代碼。那些熟悉諸如C,C++或Java等語言的程序員們,也總是發現他們能夠在幾個小時之內就能夠進行PHP編程。
PHP是針對Web開發而設計的,這一事實使它成為一種獨具特色的開發工具,就象Intranet Design雜志評價的那樣:
“PHP是構建在Web開發人員現實需求之上的....不同於其它笨重的,高負荷的方法,PHP非常輕便,是為Web開發度身定做的。它可以比其它同類技術更快,更容易的解決復雜的問題。”
Java作為一種新的編程語言,最初用於運行嵌在浏覽器中的客戶端應用程序。在過去短短幾年中,“applet”所暴露的問題迫使SUN和其它Java開發人員為該語言尋找新的出路。其中最為突出的就是服務器端編程,它允許Web站點連接數據庫並產生其它服務器端的應用程序,即“servlets”。SUN最終推出了Java Server Pages(JSP)作為編寫servlets的手段。與PHP一樣,JSP在不同平台間也具有高可移植性(盡管PHP支持任何32位以及32位以上的平台,而JSP只能在安裝了Java虛擬機的平台上運行)。 然後,沒有編程背景的新手會發現,使用servlets編程是一件極為困難的事,原因在於該語言的復雜性以及JSP系統復雜的設計方式。
JSP的性能也存在許多待改進的地方:ZDnet的在線刊物eWeek最近的一項調查發現,PHP的運行速度差不多是JSP的3.7倍。可以說,JSP是Web環境中非常差的一種解決方案,這是因為它每秒鐘只能處理很少的事務,而且響應速度相當的慢。
ZDnet的eWeek雜志還提到:
“JSP是一項相對較新的技術,從開發工具、資源、人才方面來看,還未具有完全的市場成熟度。”......由於JSP是基於Java的,而Java由是一種強類型的語言,所以我們不得不聲明變量的類型,並在需要的地方手工轉換類型。這使得JSP成為程序員最難於學習的一種腳本語言。
PHP與Java協同工作
JSP僅僅是一種能夠訪問Java對象的語言罷了,認識到這一點很重要。而PHP也可以整合Java,這意味著,PHP可以象JSP一樣,成為一種能夠調用Java邏輯的腳本語言。但與JSP不同的是,PHP還可以調用其它組件模型,如Microsoft的COM,而且增加對新的對象模型的支持也極為容易。可見,PHP的擴展能力是無窮的。而另一方面,JSP完全依賴於Java。
IBM程序員Sam Ruby聯合使用PHP和Java。通過PHP對Java的良好支持,使得Java對象如同常規的PHP對象一樣,透明地被創建和使用。
AutionWatch網站使得各種規模的商業團體都可以從其動態競價環境中獲益。它每月的訪問人數在二百六十萬以上;已有三十多萬個注冊用戶;每個月進行一百二十萬次拍賣。 他們曾嘗試使用Java,但還是選擇了PHP,就因為它更容易使用,開發速度更快。若想知道的更多,請聯系Ben Margolin,他是AuctionWatch網站銷售服務部的主任([email protected])。
編程顧問Reuven Lerner曾在各種語言之間作過比較。他對PHP的看法概括如下:
“這是門容易學習的語言。美工和Web設計師可能會說他們並非程序員,但事實上,他們在大型項目中,越來越多的使用了JavaScript,VBScript以及其它一些簡單的編程語言。與Perl相比,PHP更加正規和明確;對一個新手來說,PHP比Java更容易掌握。確實,PHP有點象JavaScript(如果存在服務器端版本的話)。任何人,不管有無編程經驗,都可以在很短的時間裡學會並使用PHP。這一點也許VBScript可以做到,但Perl和Java肯定不行.....PHP絕對是一個非凡的,強大的系統。無怪乎能夠成為創建Web站點的流行語言.....我認為,PHP將成為Java和JSP強有力的競爭對手,我會在某些客戶和公司內部項目中極力推薦PHP。”
PHP:一直在前進
JSP有Sun作為其後盾,因此不斷獲得媒體的關注。但有趣的是,盡管沒有任何宣傳攻勢,PHP的流行度仍然以8-11%的速度在增長,遠遠大於服務器端應用程序4%的月增長率。有六百五十萬個站點使用了PHP(參見Netcraft 2001年5月的調查報告)。39%的Apache服務器上配置了PHP;而Perl占了11%的市場分額,名列第四。Apache保持著59%的Web服務器市場占有率;Microsoft次之,僅28%(參見E-Soft Inc./SecuritySpace 2001年5月的調查報告)。
使用PHP的著名公司有:Unilever、Philips、NTT、Cisco、 Japan Airlines、 Air Canada、 Lufthansa、GE Marketplace、 Wallstreet:Online Germany、 AuctionWatch、 VillageVoic、 Dialpad以及BMC。
1.Intranet Design雜志:一個IT經理對PHP的看法,2000年6月4日。
http://linuxtoday.com/news_story.php3?ltsn=2000-06-04-002-04-NW-HL-SW
2.eWEEK:四中腳本語言的速度開發,2000年10月30日。
http://www.zdnet.com/eweek/stories/general/0,11011,2646052,00.html
關於PHP的前途(三)
PHP最初作為一種用Perl寫成的簡單小巧的CGI工具,被稱為“個人主頁工具(Personal Home Page Tools)”,後來改稱為“個人主頁構建工具箱(Personal Home Page Construction Kit)”。
也曾叫做“專業主頁工具(Professional Home Pages)”,現在最新的名稱是
“PHP超文本預處理器(PHP Hypertext Pre-Processor)”
另外還有一種工具,可以非常簡單的把SQL查詢語句嵌入Web頁面當中。這種工具基本上可以看作是解析SQL查詢語句,並在此基礎上非常容易的創建表單和表格的另一種CGI工具。這種工具叫做FI(Form Interpreter,表單解釋器)。
PHP/FI2.0徹底重寫了這兩個包,並合並成一個單獨的程序。最終發展成一種嵌在HTML文件當中的簡單的程序語言。PHP通過直接在HTML文件中放置簡單的腳本
使得不再需要創建大量微小的Perl CGI程序。因為免去了多次調用Perl程序的負荷,所以大大提高了你的Web頁面的總體性能。大大提高了你的Web頁面的總體性能。 而且通過把構成Web頁面的所有組件放在一個單獨的HTML文件中,使得大型站點的管理變的更為容易。 由於包括了對各種數據庫的支持,可以非常容易的開發基於數據庫的Web頁面。 許多人都認為,這種方式比創建分離的HTML和CGI文件更為簡單。
現在,PHP/FI又被重新命名為PHP。
假設你有這樣一個表單:
<FORM ACTION="display.php" 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指向的文件中使用這些變量。
一旦搞清楚了變量使用方法,那麼下一步你便可以在頁面中編寫一些邏輯流程了。 例如,你想根據不同的用戶輸入來顯示不同的消息,就可以使用if/else語句。 把上面的例子改一改,我們就可以根據用戶輸入的年齡做不同的顯示了:
<?
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腳本語言部分,獲取更多信息。
你也可以用PHP來配置頁面的訪問權限。這是通過一個內建的配置界面來實現的。比方說,你可以指定來自特定的域的用戶才能訪問你的頁面。或者,你也可以創建一個規則,用密碼保護特定的頁面。 可參見訪問控制部分,以獲取詳細內容。
PHP還能夠從任何RFC-1867兼容的Web浏覽器上載文件。 這一功能使得用戶可以上傳文本和二進制文件。通過PHP的訪問控制和邏輯函數,你可以對誰可以上傳文件以及文件上傳後執行什麼操作等實現完全的控制。可參見文件上傳部分,以獲取詳細內容。
PHP有PostgreSQL數據庫的支持包。它支持在HTML文件中嵌入SQL查詢語句。
SOAP是一種基於XML的協議,用於在兩個進程間傳送消息和進行RPC式的通訊。萬維網聯盟的XML協議(XP)工作小組正在開發SOAP標准,這一標准將被稱為XP。
SOAPX4(Simple Object Access Protocol,簡單對象訪問協議)是PHP實現:
http://dietrich.ganx4.com/soapx4.
以及http://sourceforge.net/projects/phpxmlp。
Krysalis是一套基於PHP技術的XML/XSLT發布引擎,其設計思想來自於Cocoon。
InterAKT公司開發Krysalis為得是實現下一代Web服務的功能,即信息,應用程序邏輯和表示層的完全分離。
Krysalis是一種開放源碼的以XML/XSLT為核心的PHP開發平台,它利用了PHAkt的大部份代碼,創建了Krysalis標記庫(taglib)。
其主要功能有:
·動態的XML支持。
·動態生成PDF文檔。
·用正規表達式描述站點地圖。
·PXP頁面緩存。
·多個轉換管道。
·針對不同數據的多個連接類型(ADODB)。
請訪問Krysalis的站點獲取更多信息http://www.interakt.ro/products/krysalis
PHP是一個面向對象的腳本語言。因此PHP代碼是“類,類,類,還是類”。在你編寫PHP代碼時,你必需編寫可重用的類,這些類也可以使用現有的類。 網上有著大量編寫好的類,拿來就可以使用。這其中有用來訪問數據庫的類,生成XML文檔和HTML表單的類,還有用來創建表格和其它HTML對象的類。 如果你編寫了什麼通用的類,那麼請你把它放到網上去。 到2005年,網上將會有超過1億個可重用的PHP類。PHP類的優勢在於它們提供了數據隱藏、繼承、封裝、可靠性、可重用性以及多態性等功能和特性。下面給出了最重要的PHP站點:
可訪問下列Web站點獲取大量立馬就可以用的PHP類庫
·PHP classes: http://phpclasses.upperdesign.com.
·PEAR(PHP擴展和應用程序庫)是一個PHP擴展程序的代碼庫,與Perl的CPAN相似:http://pear.php.net
·ADODB (Active Data Objects Data Base,動態數據對象數據庫) http://php.weblogs.com/ADODB : PHP的數據庫訪問函數並不統一。每個數據庫擴展都使用不同並且不兼容的API函數。這就需要創建一個數據庫類來隱藏不同數據庫間的差異(即對不同數據庫間的差異進行封裝)。 從而,我們可以很容易的實現數據庫的切換。ADODB目前可以支持MySQL、PostgreSQL、Interbase、 Oracle、 MS SQL 7、 Foxpro、 Access、 ADO、 Sybase和一般的ODBC。 可參考ADODB的手冊。PhpLens就是基於ADODB的。
·Metabase (數據庫獨立訪問和管理)
http://phpclasses.upperdesign.com/browse.html/package/20
·PHP Hot scripts: http://www.hotscripts.com/PHP
·非常受歡迎的PHP資源站點:http://php.resourceindex.com
·PHP項目站點:http://php.net/projects.php
·PHP Lib Netuse: http://phplib.netuse.de
·PHP小工具: http://www.northern.ca/projects/phpwidgets
·PHP4通用框架: http://sourceforge.net/projects/gpfr
·Source Forge的PHP庫:http://phplib.sourceforge.net
·Source Forge的PHP程序片段: http://sourceforge.net/snippet
·E-gineer的PHP庫 http://e-gineer.com/articles/php-hacker
·PHP常見問題解答: http://php.faqts.com
·PHP庫 http://px.sklar.com
·PHP工廠: http://alfalinux.sourceforge.net/phpfact.php3
·PHP Builder:http://phpbuilder.com/snippet
·PHP developer: http://www.phpdeveloper.org
·PHP新手: http://www.newbienetwork.net
· PHP walrus:http://www.evilwalrus.com
其它的PHP工具有:
·用戶登錄樣本: http://www.devshed.com/Server_Side/PHP/Commerce1
·phpPDFtable是一個PHP類,方便PDF報表的創建。需安裝PHP4.x(PHP3.x應該也可以)和pdflib: http://sourceforge.net/projects/phppdftable
·數據管理員提供了一個基於PHP的數據管理界面。它並不僅限於一個或兩個數據庫。並且封裝了原來的PHP數據庫訪問函數:http://sourceforge.net/projects/dadmin
· PSlib是一個用來生成PostScript文件的類庫。提供了一個生成PostScript文件的簡單方法。 只需在你的PHP腳本中調用PSlib函數就可以非常容易的生成PS文件:http://sourceforge.net/projects/pslib
· 可緊密合作的一組完整的PHP腳本,可創建高度自定義的,動態的和面向模塊的web站點:http://sourceforge.net/projects/twebs
·phpOpenTracker是一個站點訪問追蹤的全面解決方案。所收集的數據存儲在SQL數據庫中。可以進行復雜但是簡單的分析工作。包含了一套用於分析和生成報表(HTML和PDF)的功能強大的API:http://www.phpopentracker.de
·PHPShopCart 是一個用PHP的編寫的網上購物車程序,使用MySQL數據庫。此程序是為 “Linux下的數據庫指南”這本書編寫的”(Syngress Media): http://sourceforge.net/projects/phpshopcart
PHPGem本身也是PHP腳本程序,可加速生成操作數據表的PHP腳本。可工作於不同的SQL數據庫,如PostgreSQL、MySQL、mSQL、ODBC以及Adabas。你只要輸入數據字段的描述信息和參數(如字段名稱、是/否搜索字段等),PHPGem就會為你輸出另一個PHP腳本,該腳本可以對這個數據表進行各種操作(浏覽/添加/編輯/刪除/復制/搜索)。PHPGem支持多層嵌套的數據表。PHPGem允許你為每一個用戶指定對每一個數據表和字段訪問的級別。PHPGem還支持圖象信息。
Netscape共同創辦人Marc Andreessen在Zend/PHP會議上預言,簡單的PHP描述性語言撰寫工具,在Web-based應用程序的開發上,將會比Java更受歡迎。
在升陽(Sun Microsystems)於1995年發表Java之後,由於Java的友善接口讓工程師設計軟件更為容易,受到工程師歡迎,但十年下來Java陸陸續續被加入了強大的功能,反而使它變得不容易操作。Marc Andreessen指出,現在的Java可能比C++更難學,在此同時,PHP傳承了Java的簡單精神,並創造一個比Java更容易使用的程序開發環境。
PHP為一開放原始碼項目,其中包括可以簡化程序的描述性語言引擎以及一個大的鏈接庫,也有專門開發PHP的公司,如Zend就有銷售PHP套裝產品、程序撰寫工具及技術支持服務。
Andreessen的看法可能很難博得Java擁護者的認同,因為現階段全球仍有數百萬專研Java的工程師,也有數百家公司參與Java Community Process(JCP),在JCP中共同主掌Java的命運。但是,就算是大力扶植Java、甚至以Java為WebSphere服務器軟件核心的IBM,也認為PHP的前途會比Java來得好。
IBM新網絡科技事業處副總裁Rod Smith就說,「簡單」是PHP最大的特色,而且它不會為了與其它語言競爭而加入新的語言功能,Java顯然就不是這麼做。
而且,PHP的勢力也不小,目前約有2200萬的網站采用PHP,包括Yahoo!、Lufthansa等知名網站,數量並持續增加中,並有450個軟件工程師有權去審核在PHP軟件上的任何變動。
與Java相較,PHP可用范疇限制較多,它僅能用在網絡服務器上,不像Java,同時可用在網絡服務器、個人計算機、手機、芯片卡或其它裝置。
Java和PHP除了在某些方面相互競爭之外,某個程度來看,也在彼此靠隴。甲骨文產品策略副總Ken Jacobs表示,即使甲骨文(Oracle)銷售同時可執行Java及PHP的Java服務器與數據庫軟件,但正為Java加上一項額外的新功能,讓這兩個軟件項目可以協同運作;更具體的說,Java規格需求223(JSR 223)將會「協助建構在Java社群與PHP社群之間的那座橋梁」。
日前才發表可以分享照片等內容網站「Ning」的Marc Andreessen也說,現在Ning也同時執行Java與PHP,其中核心系統是由Java組成,比起該站所有可看見的應用程序都是由PHP寫成,Java更像是操作系統層級。
就像其它諸如Linux及Apache的開放原始碼項目,PHP目前也受到計算機工業主要大廠的庇佑,像IBM跟Oracle都致力開發讓PHP軟件可以撷取旗下數據庫的程序。事實上,IBM與Oracle的行為就像在為PHP背書,連這兩大廠都支持PHP,證明PHP也許就是個好東西。
以前收藏的資料現在拿出和大家分享。