第一課 PHP 入門

日期:2008-07-22  作者:喜騰小二  來源:喜騰網  培訓中心

什麼是PHP?

引用PHP(Hgpertext Preprocessor或Personal Home Page
Tools)的官方站點http://www.php.net的定義來說,PHP是一種伺服器端、跨平臺、HTML嵌入式的指令檔語言。其實,它和大家所熟知的ASP一樣,是一門常用於Web編程的語言。PHP醞釀於1994年,1995年發佈其第一個公開版本,截止目前已發佈的最新版本為PHP5.0。

PHP是一種免費軟體,它能執行在包括Windows、Linux等在內的絕大多數操作係統環境中,常與免費Web服務軟體Apache和免費資料庫Mysql配合使用於Linux平臺上,俱有最高的效能價格比,號稱“黃金組合”。

也許PHP最強大和最重要的特徵是它的資料庫支援,目前其支援範圍覆蓋了包括Oracle、Sybase、MySQL、ODBC等在內的大多數常見資料庫。使用它編寫一個含有資料庫功能的網頁程式變得十分簡單。


為什麼學習PHP?

1、門檻低
在c/c++、java、php、asp這些開發語言中,php是最容易學的語言,學習成本是c和java的1/10都不到,是asp的1/2都不到。我們設定了208學時的課程可以完全保證零起點的學員最後達到獨立開發一個中小型網站的水平。

2、競爭少
相對與其他開發語言,掌握php的程式設計人員目前非常少。學校基本上沒有開設php課程的,培訓php的機構也少之又少。因為php是一個和網際網路緊密相關的課程,一般的培訓機構沒有網際網路相關經驗,很難培訓好這門課程。另外,從求職的角度來看,拿php徵人資訊和最熱門的java或asp徵人資訊比較,可以發現php徵人量達到java或asp的1/3左右,但是php從業人員隻是java或asp從業人員的1/40左右。

3、需求旺
網際網路相關企業幾乎都在用php語言進行網站開發。其中包括sina,sohu,網易,tom,qq,baidu等幾乎所有的大型網站。大家可以上搜職網或其他徵人網站觀察一下,幾乎這些企業都徵人過php相關開發人員,而且每天在網際網路上有大量的php開發人員的徵人資訊。但是網際網路企業最頭疼的問題就是招收不到有實際php學習經驗的人員,更別說接受過php專業培訓的人員了。很多企業無可奈何之下隻能招收有其他開發語言經驗的人,經過內部培訓再從事php項目的開發。

4、發展空間大
儘管php門檻低,學習起來容易,因此有些人誤以為這是一個不太有發展前景的語言。其實這是一個很大的誤區,很多人就是收益於此,在從業的很短時間內走上了很高的臺階。因為其他語言至少要學習並從業很多年才能勉強算上掌握,因為大家都必須掌握這些語言的很多底層的細節問題,一直上不到一個比較高的層次來考慮問題。細節上花的時間太多反而失去了很多高層次架構上的研究機會。而php在輕鬆掌握之後就可以更多的考慮高層次架構上的問題了,細節上的問題這門語言的開發者都替從業者解決了。所以網際網路業內上升的最快的很多都是php開發人員。

PHP語言發展歷史

1、1994年, Rasmus Lerdorf 開始計劃發展PHP,並在1995年以Personal Home Page
Tools對外發表第一個版本。在這早期的版本中,提供了訪客留言本、訪客計數器等簡單的功能。

2、1995年,第二版的PHP問市,定名為 PHP/FI(Form
Interpreter)。PHP/FI並加入了mSQL的支援,自此奠定了PHP在動態網頁開發上的影響力。

3、1996 年底,有15,000個Web網站使用PHP/FI。

4、1997年,使用 PHP/FI 的Web網站成長到超過50,000個。Zeev Suraski 及 Andi
Gutmans加入了開發小組,開始了第三版的開發計劃,從此PHP成為了真正意義上的開源項目。

5、1998年6月,PHP.net發佈了PHP
3.0。在這一版本中PHP可以跟Apache伺服器緊密地結合,幾乎可以支援所有主流與非主流資料庫;而且它擁有非常高的執行效率,這些優勢使1999年使用
PHP的網站超過了150,000 個。

6、現在PHP5.0版本強化更多的功能。首先,完全實現麵嚮物件,提供名為PHP相容模式的功能。其次是XML功能,PHP5.0版本支援可直觀地訪問XML資料、名為SimpleXML的XML處理用介麵。同時還強化了XML
Web服務支援,而且標準支援SOAP延伸模組。
資料庫方麵,PHP新版本提供旨在訪問MySQL的新介麵--MySQLi。除此前的介麵外,還可以使用麵嚮物件介麵和預處理陳述式(Prepared
Statement)等MySQL的新功能。另外,PHP5.0上還捆綁有小容量RDBMS--SQLite。

PHP功能特點

PHP語言的特點:

◎快速:PHP是一種強大的CGI指令檔語言,語法混合了C、Java、Perl和PHP式的新語法,執行網頁比CGI、Perl和ASP更快,這是它的第一個突出的特點。


◎俱有很好的開放性和可延伸性:PHP屬於自由軟體,其源程式碼完全公開,任何程式設計人員為PHP延伸附加功能非常容易。

◎資料庫支援:PHP支援多種主流與非主流的資料庫,如:、Adabas
D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MySQL、Microsoft SQL
Server、Solid、Sybase、ODBC、oracle、oracle
8、PostgreSQL等。其中,PHP與MySQL是現在絕佳的組合,它們的組合可以跨平臺執行。

◎麵嚮物件編程:PHP提供了類和物件。為了實現麵嚮物件編程,PHP4及更高版本提供了新的功能和特性,包括物件多載、引用技術等。

◎版本更新速度快:與數年才更新一次的ASP相比,PHP的更新速度就要快得多,因為PHP每幾周就更新一次。

◎俱有豐富的功能:從物件式的設計、結構化的特性、資料庫的處理、網路介麵應用、安全編碼機制等,PHP幾乎涵蓋了所有網站的一切功能。

◎可伸縮性:傳統上網頁的互動作用是透過CGI來實現的。CGI程式的伸縮性不很理想,因為它為每一個正在執行的CGI程式開一個獨立處理序。解決方法就是將經常用來編寫CGI程式的語言的解釋器編譯進妳的web伺服器(比如mod_perl,JSP)。PHP就可以以這種方式安裝,雖然很少有人願意這樣以CGI方式安裝它。內嵌的PHP可以俱有更高的可伸縮性。


PHP語言的優勢

◎良好的安全性:PHP是開源軟體,所有PHP的源程式碼每個人都可以看得到,程式碼在許多工程師手中進行了偵測,同時它與Apache編繹在一起的方式也可以讓它俱有靈活的安全設定,PHP俱有了公認的安全效能。


◎跨平臺特性:ASP比不上PHP的跨平臺能力,PHP幾乎支援所有的操作係統平臺及資料庫係統,正是它的這種能力讓UNIX/Linux有了一種與ASP媲美的開發語言,並廣為流行。

◎易學性:PHP嵌入在HTML語言中,且堅持指令檔語言為主,與Java、C等語言不同,語法簡單、書寫容易,方便學習掌握。現在市麵上也有了大量的書,同時Internet上也有大量的程式碼可以共用

◎執行速度快:占用係統資源少,程式碼執行速度快。

◎免費:在流行的企業應用LAMP平臺中,PHP、Linux、Apache、MySQL都是免費軟體,降低了企業架設成本。

PHP能做什麼?

PHP 能做任何事。
PHP 主要是用於服務端的指令檔程式,因此您可以用 PHP 來完成任何其它的 CGI 程式能夠完成的工作,例如收集表單資料,生成動態網頁,或者發送/接收
Cookies。但 PHP 的功能遠不侷限於此。
PHP 指令檔主要用於以下三個領域。

1、服務端指令檔。
這是 PHP 最傳統,也是最主要的目的領域。開展這項工作您需要俱備以下三點:PHP 解析器(CGI 或者伺服器模組)、WEB 伺服器和 WEB
浏覽器。您需要在執行 WEB 伺服器時,安裝並配置 PHP,然後,可以用 WEB 浏覽器來訪問 PHP 程式的輸出,即浏覽服務端的 PHP
页面。請查閱“安裝”一章以獲取更多資訊。

2、指令行指令檔。
您可以編寫一段 PHP 指令檔,並且不需要任何伺服器或者浏覽器來執行它。透過這種方式,您僅僅隻需要 PHP 解析器來執行。這種用法對於依賴 cron(Unix
或者 Linux 環境)或者 Task Scheduler(Windows
環境)的日常執行的指令檔來說是理想的選擇。這些指令檔也可以用來處理簡單的文字。請參閱“PHP 的指令行模式”以獲取更多資訊。

3、編寫用戶端的 GUI 應用程式。
對於基於視窗式的應用程式來說,PHP 或許不是一種最好的語言,但是如果您非常精通 PHP,並且希望在您的用戶端應用程式中使用 PHP 的一些進階特性,您可以利用
PHP-GTK 來編寫這些程式。用這種方法,您還可以編寫跨平臺的應用程式。PHP-GTK 是 PHP 的一個延伸,在通常發佈的 PHP 包中並不包含它。如果您對
PHP-GTK 感興趣,請訪問其網站以獲取更多資訊。
PHP 能夠用在所有的主流操作係統上,包括 Linux、Unix 的各種變種(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft
Windows、Mac OS X、RISC OS 等。
今天,PHP已經支援了大多數的 WEB 伺服器,包括 Apache、Microsoft Internet Information
Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website
Pro Server、Caudium、Xitami、OmniHTTPd 等。對於大多數的伺服器,PHP 提供了一個模組;還有一些 PHP 支援 CGI
標準,使得 PHP 能夠作為 CGI 處理器來工作。
綜上所述,使用 PHP,您可以自由地選擇操作係統和 WEB 伺服器。同時,您還可以在開發時選擇使用麵對過程和麵對物件,或者兩者混和的方式來開發。儘管 PHP
目前的版本還沒有支援 OOP 所有的標準,但很多程式碼倉庫和大型的應用程式(包括 PEAR 庫)僅使用 OOP 程式碼來開發。
使用 PHP,您並不侷限於輸出 HTML。PHP 還能被用來動態輸出影像、PDF 檔案甚至 Flash 動畫(使用 libswf 和
Ming)。您還能夠非常簡便的輸出文字,例如 XHTML 以及任何其它形式的 XML 檔案。PHP
能夠自動生成這些檔案,在服務端開辟出一塊動態內容的快取,可以直接把它們列印出來,或者將它們存儲到檔案係統中。
PHP 最強大最顯著的特性之一,是它支援很大範圍的資料庫。您會發現利用 PHP 編寫資料庫支援的網頁簡單得難以置信。目前,PHP 支援如下資料庫:
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
我們同時還有一個 DBX 延伸庫使得您可以自由的使用該延伸庫支援的任何資料庫。另外,PHP 還支援 ODBC,即 Open Database
Connection Standard(開放資料庫連線標準),因此您可以連線任何其它支援該世界標準的資料庫。
PHP 還支援利用諸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows
環境)等不計其數的協定的服務。您還可以開放原始網路連接埠,使得任何其它的協定能夠協同工作。PHP 支援和所有 WEB 開發語言之間的 WDDX
復雜資料交換。關於相互連線,PHP 已經支援了對 Java 物件的即時連線,並且可以將他們自由的用作 PHP 物件。您甚至可以用我們的 CORBA
延伸庫來訪問遠端物件。
PHP 俱有極其有效的文字處理特性,支援從 POSIX 延伸或者 Perl 規則運算式到 XML 文檔解析。為瞭解析和訪問 XML 文檔,我們支援了 SAX 和
DOM 標準。您可以使用我們的 XSLT 延伸庫來轉換 XML 文檔。
如果您將 PHP 用於電子商務領域,您會發現其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS
函式對於您的線上交易程式來所是非常有用的。
另外,我們還有很多其它有趣的延伸庫。例如 mnoGoSearch 搜尋引擎函式、IRC 閘道器函式、多種壓縮工俱(gzip、bz2)、日歷轉換、翻譯……

在多數WEB開發者眼中,ASP和JSP都被認為是領跑者,而PHP卻被認為是個弱小的“掙紮者”,或者說它是一門被貶低為業餘者才使用的語言,不值得參與企業WEB開發的競爭。在我看來,PHP沒有被當作競爭者的理由是評論者缺乏對它的瞭解,而且也不瞭解用於WEB開發的其他操作係統。和一些觀點相反,Windows不再占有WEB虛擬主機服務市場的最大份額,我猜想它在WEB開發這一領域裡也在被摧城拔寨。

在企業開發裡為什麼沒有PHP?

很顯然,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周圍有什麼忘掉一會兒,而考慮一下PHP自身能夠提供什麼。它是一門強健的伺服器端語言,能夠提供相當多的功能,而且能夠迅速地為页面提供服務。


本機化

PHP讓妳能夠為網站的訪問者提供本機化的服務。當使用者按進入網站的時候,網站會根據他們浏覽器的設定自動地以其母語嚮其提供页面。要實現這一點不需要使用用於語言翻譯的煩雜檔案,而是使用和本機化的C程式所俱有的相同能力,透過一個叫做gettext的係統實現的。如果被請求的語言檔案存在,那麼使用者所看到的文字就是其母語;如果語言檔案不存在,那麼文字就是預設的英文或者其他任何妳所指定的語言。許多本機化的UNIX應用程式都將gettext作為標準,它讓協力廠商的翻譯變得輕而易舉。


輕易地使用指令行

PHP支援在需要的地方設定和執行指令行程式。使用標準的UNIX
diff工俱,它能夠生成錯誤最後一次修改同要使用電子郵件發送到錯誤的所有者的當前注釋之間的不同。PHP程式碼對在係統上所編寫的兩個檔案執行diff,將其輸出作為輸入,再生成一個要發送的電子郵件。這封電子郵件是透過PHP自己來發送的。


其他好處

即時建立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隻能表示對這一語言的無知。

技術考試

上一篇

下一篇

喜騰培訓

站內新聞

我要啦免费统计