第一課 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隻能表示對這一語言的無知。

技術考試

上一篇

下一篇

喜騰培訓

站內新聞

我要啦免费统计