❶ php什麼是PEAR
借著引入PEAR,php的程式開發者除了可以大幅縮減撰寫程式碼的工作與時間外,還可以用很簡單的方式得到許多強大的動態網頁功能,我將會列舉許多的實例,讓大家看了後,一定會啪掌叫好,並深深的迷上了PEAR。此外,程式碼很容易維護,安全性高也是PEAR另2個很吸引人的優點,PAER程式庫宛如模組,可以輕易的抽換與更新,完全不會影響到其他的程式碼。
我們是從最基本的觀念介紹起,包括PEAR這個專有名詞的含意? 在那地方取得PEAR套件(package)? 如何使用PEAR套件等?
從第2章起,我們首先介紹PEAR的起源、歷史與特色,讓大家對PEAR有個基本的認識。
第3章我們將會介紹PEAR程式庫套件的安裝與管理方法,這一章是非常重要的,在使用PEAR之前,必需先把這些基本功夫學好,雖然有點復雜,但是學會之後受用無窮,讓您的PHP程式開發效率倍增,功能隨著遞升。
第4章,是由簡單的範例介紹如何引用PEAR程式庫來開發PHP程序,讓我們了解PEAR的一般使用方法,也為程式庫的使用建立一個基本的操作流程。
在第五章我們將介紹幾個用法簡單又功能強大的程式庫套件的範例,讓大家可以在動態網頁上快速建立一些您以前無法想像而又非常酷的功能,讓您的程式開發功力立刻提高。例如:
◆ 讓網頁可以提供天氣預報的功能,增加網頁的附加價值。
◆ 用很簡單的方法在伺服器上建立網頁的快取(Cache),加快網頁的開啟速度。
◆ 在動態網頁上搜尋某台主機有提供那些PORT號的服務。
◆ 在動態網頁上查詢某個網域名稱(DNS),找出相對應的IP。
◆ 動態產生HTML表格。
◆ 快速建立「客戶回函」系統,讓網頁瀏覽者可以從網頁上寄信給網站管理員。
◆ 讓網頁可以記錄網頁瀏覽者的行為,也就是做Log。
第6章到第13章,我們會很詳細地介紹一些很重要,很常用,但較為復雜的程式庫套件的使用方法,這幾章都是以套件為介紹的主軸,也就是說,一章只介紹一個套件,務求將這幾個重要套件中較為重要功能,詳細地介紹給大家。
這些套件(packages)包括:資料庫連線套件、表單製作套件、身份認證套件、檔案上傳套件、分頁套件等等。
最後,附錄A會對PEAR的網站做詳細的介紹,當您進入PEAR的世界後,您一定會經常來這個網站尋找資料。知道如何利用網站,對於那些PEAR的PHP開發者而言,是十分重要的。附錄B則會對PHP的物件導向程式設計做簡單的介紹。
喜歡和適合使用PEAR者分類如下:
◆ php愛好者,那一定要用PEAR,因為它絕對棒極了。
◆ PHP的專業程式設計員。您需要的是程式碼的安全性,可重復性,以及良好的工作效率,PEAR絕對是必備的。
◆ PHP的程式玩家,想要開發更有趣的,功能更強的應用程式,卻不想被撰寫PHP程式的一些煩惱綁纏,PEAR絕對可以滿足您的要求。
◆ 自己撰寫PHP程式,卻不喜歡每次都要從零開始,一字一字地敲打程式碼,PEAR可以提高您的工作效率。
◆ 您想要學習功能性強,安全性高的PHP,當學會了PHP的基本語法後,可以試著使用PEAR。
◆ 您需要量身定造的PHP應用程式,換言之,您不喜歡像XOOPS之類的套裝應用程式,來試試PEAR吧。
◆ 您需要容易維護的PHP應用程式,不想日後常修改程式碼,或因為PHP的改版而將整個程式重新設計。
◆ 您希望您的PHP程式可以物件導向化,方便程式的抽換與模組化。
◆ 您希望您的PHP功力更上一層樓,想要學習更多的PHP相關知識,透過PEAR的使用或觀看PEAR的原始碼,不失為一個好的學習途徑。
PEAR就是專門為有以上這些需求的人所寫的.。
使用PEAR就像建一座房子一樣。它是讓您用預製件的方式,建一棟自己設計兼施工的大房子,但卻不需要自己攪拌水泥,自己准備沙土、石頭,自己燒磁磚.自己做鋁門窗,自己做木工裝飾等等...。
PEAR就像是已經針對您的需求所訂制好並准備好的預製件,您只需要運用創意將他們組合起來就可以了。
我門在使用PEAR來編寫PHP程式時,必需有一個先決條件,就是必需對PHP的相關知識有一定的認識。
若您不知道甚麼是PHP,什麼是Apache、Mysql,或者您雖然知道,卻還不會PHP的基本語法,那麼,本文章目前並不適合您。建議您快去買些PHP、Apach、Mysql的入門書籍,詳加研讀後,才來看本文章。
大家並不一定要是PHP高手,但一定需要具備看懂基本PHP程序碼的能力。無論如何,首先對PHP的熱愛才是閱讀本書最基本的先決條件。
第二章
PHP有許多的規范與語法,我們不做介紹,請大家有空去閱讀有關PHP的書籍,我們重點介紹的是PHP發展到4.0版以後。加入了物件導向(Object-Oriented Programming Language)的功能,雖然還無法像了java一樣做到完全的物件導向,但比起前版本PHP3.0已經是一大進步,也對PHP的程序開發者提供了更強大與更方便的開發能力。
PHP 5.0版以上的版本,已經轉變成為徹底的物件導向化,提供了更多完全物件導向功能。我們所介紹的PEAR程式庫對PHP 4.3.0以上的版本是完全的支援。這一點請大家放心。
為了大多數人著想,也考慮到PHP向下的相容性,本書的內容與範例都可以在PHP 4.3.0版以上的環境中執行,因為PEAR完全支援PHP 4.3.0以上的版本,小於PHP 4.3.0版的環境,PEAR大部分也是支援的,只有小部分不支援。
什麼是PHP的物件導向? 物件導向的語法在傳統的PHP程式中較少看到,但若您了解JAVA這種程式語言的話,您應該可以知道什麼足物件導向,我會在附錄B有針對物件導向做簡單的說明。
另外,我要強調的是:PHP除了基本語法外,內建的函式就有超過上千個,橫跨上百種類別,包括文字類函式、數字類函式、資料庫類、圖形類等等,功能相當強大,令人吒舌。但相對於程式開發者,如何善用這些函式,配合PHP的語法撰寫有效又好管理的程式碼,將會是一大挑戰。
在今天,有PEAR這個由全世界眾多頂尖的PHP高手所共同生產的智慧結晶,可以讓我們輕松又有效率地撰寫程式碼,並克服許多撰寫上的困難。以武俠界的例子來說,用PEAR撰寫PHP就宛如數百位武林高手灌注他們的功力給程式開發者。讓程式開發者不用從最基本的練功,扎馬步練起,借用他們的功力就可以很輕松的讓功力倍增,效率倍增。
說了半天,到底什麼是PEAR?下一個單元筆者就來做個介紹。
PEAR這個字單純就字面上而言意思是「梨子」。
一顆梨子。網站的網址為http://pear.php.net
PEAR網站的logo中可以看到例子。
PEAR的開始是從1999年11月2l日。有一位名叫Stig S.Bakken的先生,這位仁兄發起了一個專案,並號召許多的PHP高手來共同投入,他首先為這個專案建立了一些程式碼的基礎規則,希望PHP的開發者加入這個專案時所撰寫的PHP程式碼都需要遵守這些規則。
這個專案名稱就是PEAR,其實是PHP Extension and Application Repository的縮寫,意即「PHP的延續與應用程式庫」,簡單的說,PEAR其實是一個PHP的程式庫。
Bakken先生建立的程式碼基礎如下,我只概略說明一下,並不詳談細節的部分:
◆ 如果開發者要提供PHP程式庫,程式的結構必須物件化。
◆ 程式的縮排要遵循一定的格式
◆ 程式中類別的命名也要遵循一定的格式
◆ 程式碼的註解要有一定的格式
◆ 檔案命名要有一定的格式
◆ 程式庫撰寫完成後要包裝成套件,而套件的包裝與安裝方式,也有一定的格式。
該專案歡迎所有的PHP開發者來共同開發PHP程式庫,只要他們願意遵守上述的程式碼基礎規則。Bakken先生並組織了一組團隊作為這個專案的控制主體,負責審核所有參與專案的開發者所提供的程式庫,若通過審核,就將程式庫分類並放入網站中供其他開發者下載使用,另外,這個團體也負責維護網站的維護與更新。
有些人可能會很好奇,為什麼有人會願意免費撰寫程式庫讓別人來使用呀? 這就是開放原碼世界的精神一互助、共享。試想,若每個開發者針對自己專精的部分開發程式庫給其他人使用,同時也享用別的開發者所釋出的程式庫,是不是可以達到互助的目的,讓每一個開發者共享所有的開發者的成果.不必所有的程式碼都要自己撰寫。
更棒的是,這些程式庫是免費開放給全世界的人使用的,不只參與程式庫開發的開發者可以享用(這種作法與Java或perl提供函式庫的作法是一樣的)。
因此,全世界所有的PHP開發者可以省去許多撰寫程式碼的時間,又因為使用程式庫的開發者可以回報程式庫的缺失給原開發者,原開發者也因此會不斷的修正這些程式庫,所以程式碼相對安全。另外,程式庫開發者也會隨著時代演進,加入新的功能到程式庫中,讓程式庫的使用者可以與時俱進。
詳細情況可參閱PEAR的網站中所提到關於開發PEAR的目的說明:http://pear.php.net/manual/en/about-pear.php。我建議您有時間慢慢地看吧,繼續將本文章看下去,您就會慢慢了解PEAR的神奇之處了。
我在文章的最後有一章附錄:PEAR網站的介紹,大家可以先參考一下。
如果您還不太了解我介紹所謂「程式庫」的意思,沒關系,下一節就會透過實際的例子加以說明。
2-3 所有套件簡介
▓ 程式庫VS套件
介紹所有套件之前,我們必須釐清兩個名詞,以免讀者混淆了,一個就是「程式庫」,另外一個就是「套件」。
假如我是是一個PHP的開發者,發展了一個可以處理所有資料庫存取「程式庫」,並想將這個程式庫加入PEAR分享給全世界使用。當我撰寫完理資料庫的程式庫後,我必須按照PEAR的規定,將程式庫壓縮成一個「件」檔,放在PEAR網站供所有人下載,也由於遵循PEAR的規定來壓縮檔案,這個套件就可以用PEAR的套件管理指令來安裝或管理,這對PEAR使用者而言是相當便利的,關於套件管理指令,我會在下一章做完整的說明經過上述的說明,相信讀者應該了解何謂「程式庫」、何謂「套件」?其實,簡單的說,把程式庫包裝好就變成了套件。
▓ 套件與分類
PEAR截至目前為止釋出的套件已高達三百多個,共分為35大類,而且不斷增加中。大家可以想像全世界的頂尖PHP開發者的結合,是一股多大的團結力量。下圖是網站中套件的分類:
PEAR因為釋出的套件太多了,為了管理上的方便所以依套件的功能將套件做分類,同一類的套件在效果上都有相關性,但提供的功能卻不盡相同小接下來,我將所有的分類用表格的方式做一個簡單的介紹,讓大家多了解一下PEAR套件可以提供哪些功能。
這麼多的分類,每一類都會依功能的不同發展出不同的套件。以第一個認證類為例,若您到網站去看,會發現目前該類中共有8個套件
這8個套件都是與身份認證有相關的套件,如果您想要網頁具有身份認證功能,例如,可以讓網頁瀏覽者注冊、輸入帳號密碼、判別身份、給予許可權等等。就會需要用到這些套件。
我再補充一點:有些套件已發展成熟,開發者會將它稱為穩定(stable)版,但若程式庫尚在發展中,但也已經可以使用,開發者將它釋出,通常會稱為測試版(alpha or beta)版。網站也會記錄套件的開發者與維護者的姓名,有時候一個套件是由許多人共同開發而成的。
這些套件的訊息都可在PEAR的網站中找到,我在附錄〈PEAR網站的介紹〉會介紹如何使用PEAR網站。
2-4 使用PEAR程式庫的簡單範例
在這一節中,我用l個簡單的範例來說明程式庫的使用。
假設您想要製作一個網頁,並且希望知道網頁執行時所耗用的時間,則可以借用PEAR所釋出的名為Benchmark的程式庫。這個程式庫開發出來的目的就是用來計算網頁的執行時間。
首先,先將Benchmark程式庫套件安裝好(安裝方法請參考下一章)。接著我們就可以開始撰寫網頁了,例如:我們建立了一個名為show.php的網頁。
基於說明上的方便,我在每一行程式前面加上行號,大家實際上撰寫程式時是不用加上行號的。
第1行與第2行的程式碼首先引用Benchmark套件中的Timer.php網頁,這個網頁內含計算綱頁執行時間的程式庫。include_once可以將某一個外部的網頁放到這個綱頁來,我稱這個動作叫做「引用」, 本例相當於執行了Timer.php與show.php兩個網頁。
第3行,用new關鍵字建立一個Benchmark_Timer物件,並將該物件放入名為$timer的變數中。接著使用細$timer物件的start( )方法啟動時鍾,然後加上我自己的程式碼,此例中是一行簡單的程式。
接著就是要結束時鍾的計時,計算網頁執行所花費的時間並將它顯示出來。第8行先用$timer物件的stop( )方法來停止時鍾,並用第9行$timer物件的timeElapsed( )方法計算時鍾從啟動到停止中間的時間差,並將計算結果放入$totaltime變數中。
最後用echo函式顯示時間差在網頁上。
由結果可清楚看到show.php網頁從開始執行到執行完畢總共花了0.00013613700866699秒,以後可以藉由觀察這個數字來判斷系統效能,或做為程式碼改進的參考。如何,執行時間的計算是不是方便、快速又神奇呢!
如果您需要在其他網頁上也可以有計算網頁的執行時間的功能,只要用上述方式套用在其他PHP網頁上就可以了。
事實上,其他套件的使用方式也跟這個套件的使用方式大同小異.差別只是在每個套件所提供的類別、方法以及使用的參數各有不同而已。
套件雖然好用,但相信讀者還是有許多的疑惑? 例如:
1. Benchmark程式庫套件是怎麼來的?要有哪些前置工作才可以使用它?
2. 我是如何知道使用Benchmark套件的方法?
第1個問題牽涉到如何安裝PEAR套件,以及安裝後套件的管理、升級、刪除等問題,我會在第3章加以介紹。第2個問題,筆者會在第4章針對如何使用套件、如何得到套件的資訊等做一個詳細的說明。
2-5 為何要用PEAR
為何要使用PEAR? 我根據自己的心得,歸納出以下幾點:
1. 省時省力:許多程式碼都被撰寫在程式庫中,開發者只需引用含程式庫的PHP檔,就可以擁有程式庫所提供的功能,省去自行撰寫的時間與精力。
2. 安全:由於這些程式庫套件都將原始碼公開,使用者若發現bug,可以立即向套件的開發者反映,開發者通常也會立即加以修正,讓程式庫的錯誤減到最小。
3. 容易維護:自行撰寫的程式碼與PEAR程式庫的程式碼分開,若PEAR套件因為有新功能被開發或修正錯誤而釋出新版本,只需更新套件即可,完全不會動到自行撰寫的程式碼。
4. 功能強大:PEAR套件所提供的功能非常之多,除了一般常用功能如:資料庫的連結、設定檔的處理、身份的認證、以及表單的處理。另外,較為進階的功能,例如像網路郵局、網路管理、動態方式產生圖形、RSS、Wiki,或者像phpBB的BBCode解析等等都可簡單做到。
5. 讓網頁的程式開發與版面設計分開:PEAR提供許多樣板的程式庫,可讓程式開發與版面設計分開,方便於程式開發者與網頁設計者分工合作。
6. 對學習PHP者是一套絕佳的學習範例:程式庫的註解說明十分詳細,程式碼的撰寫,具有一定的規則與格式,而且完全物質化,讓開發者容易看懂並學習。有些套件還內附教學文件與範例擋,最重要的是:你不用花半毛錢就可得到,我們應該感謝套件的作者們,他們為我們付出了無私的貢獻。
2-6 為什麼要建立PEAR社團
是什麼原因促使全世界的PHP開發者大團結,共同開發出PEAR這個程式寶庫呢? 我就認為有以下幾個原因:
1.遭受其他競爭者的強大競爭:這一點第1章已經說明過了。
2.PHP的物質化:從PHP4加入物質導向的功能後,PHP5更是進一步物質化。除了要與ASP.NET、JSP一拼外,就是方便於程式的模組化,讓程式庫的開發可以進行,有了物質化的功能,程式庫才可以與開發者自行撰寫的程式碼切割。
3.開發者的共同需求:如果每一次開發PHP程式,都要從無到有完全自己來,雖然可以鍛鍊程式功力,但卻沒有效率,也不甚經濟。若一些常用的功能可以用程式庫的方式來處理,將可以解決許多開發者的困難。基於這種所有開發者都共同擁有的需求,讓這些PHP的開發者分工合作,共同發展程式庫,幫助自己也幫助別人。
2-7 PHP的競爭者與優缺點
PHP是在1994年發展出來的,經過四次主要的改寫,成為我們今天所看到的可以廣泛應用且成熟的產品。到2005年四月為止,PHP已經運用於全球超過1900萬個網站上,而且這個數字還在持續快速成長中。
PHP與他們的競爭對手相比,他具有以下優勢:
高效能:不是我黃婆賣瓜,哈哈。.., 我閱覽過許多Asp.NET與Jsp的網頁,效能上實在無法與PHP相比。(Asp.NET與Jsp的使用者應該不會看這篇文章吧)。
● 可以與許多不同的資料庫系統相連結:其他的競爭者也可以,但沒有PHP快。
● 易學易用:PHP的程式碼的寫法非常直覺,容易學習。
● 支援物件導向:這方面Jsp是強項,但PHP5已經追上來了。
● 低成本:根本不用錢。
● 內建非常多的函式庫:記得筆者以前使用Asp,內建的函式庫實在少的可憐。
● 開放原始碼:安全性會比沒有開放的高。
● PEAR程式庫:這是最近的強力武器,用來與強敵們一爭長短。
● 可攜性:無論是各類Unix作業系統,如:Linux,FreeBSD,商業版Unix或Windows作業系統都可以使用PHP。
Asp.NET與Jsp當然也有他們獨特的優點? 例如,Jsp夾帶JAVA強大的功能,它就可以呈現一些目前PHP無法做到的效果。所以Jsp也吸引了許多的使用者,但筆者對Jsp目前的效能實在還不甚滿意,相反地,對PHP的快速度滿意的不得了。
使用哪一種程式,就由您自行做明確的抉擇,不過,若您選擇觀看文章,相信我們應該都是同道中人,PHP的愛好者。
總而言之,許多PHP高手共同構築了一個強大的支援網,若您是PHP的程式開發者,卻對這些高手的好意毫不領情,那不是太可惜了嗎?
❷ php是編程語言還是標記語言
編程語言。
html才是標記語言。
標記語言只是組織數據,編程語言可以處理數據
❸ php除了mvc還有什麼架構
1. Yii
Yii是一個基於組件的高性能的PHP的框架,用於開發大規模Web應用。Yii採用嚴格的OOP編寫,並有著完善的庫引用以及全面的教程。從MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主體化,I18N和L10N,Yii提供了今日Web 2.0應用開發所需要的幾乎一切功能。而且這個框架的價格也並不太高。事實上,Yii是最有效率的PHP框架之一。
2. CodeIgniter
CodeIgniter是一個應用開發框架——一個為建立PHP網站的人們所設計的工具包。其目標在於快速的開發項目:它提供了豐富的庫組以完成常見的任務,以及簡單的界面,富有條理性的架構來訪問這些庫。使用CodeIgniter開發可以往項目中注入更多的創造力,因為它節省了大量編碼的時間。
3. CakePHP
CakePHP是一個快速開發PHP的框架,其中使用了一些常見的設計模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目標在於提供一個令任意水平的PHP開發人員都能夠快速開發web應用的框架,而且這個快速的實現並沒有犧牲項目的彈性。
4. PHPDevShell
PHPDevShell是一個開源(GNU/LGPL)的快速應用開發框架,用於開發不含Javascript的純PHP。它有一個完整的GUI管理員後台界面。其主要目標在於開發插件一類的基於管理的應用,其中速度、安全、穩定性及彈性是最優先考慮的重點。其設計形成了一個簡單的學習曲線,PHP開發者無需學習復雜的新術語。PHPDevShell的到來滿足了開發者們對於一個輕量級但是功能完善,可以無限制的進行配置的GUI的需求。
5. Akelos
Akelos PHP框架是一個基於MVC設計模式的web應用開發平台。基於良好的使用習慣,使用它可以完成如下任務:
◆方便的使用Ajax編寫views
◆通過控制器管理請求(request)及響應(response)
◆管理國際化的應用
◆使用簡單的協議與模型及資料庫通信
你的Akelos應用可以在大多數共享主機服務供應方上運行,因為Akelos對伺服器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用於發布單獨web應用的框架,因為它不需要非標准PHP配置便能運行。
6. Symfony
Symfony是一個用於開發PHP5項目的web應用框架。
這個框架的目的在於加速web應用的開發以及維護,減少重復的編碼工作。
Symfony的系統需求不高,可以被輕易的安裝在任意設置上:你只需一個Unix或Windows,搭配一個安裝了PHP5的網路伺服器即可。它與差不多所有的資料庫兼容。Symfony的價位不高,相比主機上的花銷要低得多。
對於PHP開發者而言,使用Symfony是一件很自然的事,其學習曲線只有短短一天。干凈的設計以及代碼可讀性將縮短開發時間。開發者可以將敏捷開發的原理(如DRY,KISS或XP等)應用在其中,將重點放在應用邏輯層面上,而不用花費大量時間在編寫沒完沒了的XML配置文件上。
Symfony旨在建立企業級的完善應用程序。也就是說,你擁有整個設置的控制權:從路徑結構到外部庫,幾乎一切都可以自定義。為了符合企業的開發條例,Symfony還綁定了一些額外的工具,以便於項目的測試,調試以及歸檔。
7. Prado
PRADO團隊由一些PRADO狂熱者組成,這些成員開發並推動PRADO框架以及相關項目的進行。
PRADO的靈感起源於Apache Tapestry。從04年開始,PRADO成為SourceForge上的開源項目之一。這個項目目前進展到了3.x版本。
8. Zend
作為PHP藝術及精神的延伸,Zend框架的基礎在於簡單,面向對象的最佳方法,方便企業的許可協議,以及經過反復測試的快速代碼庫。Zend框架旨在建造更安全,更可靠的Web 2.0應用及web服務,並不斷從前沿廠商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那裡吸收精華。
9. ZooP
Zoop PHP框架,意為Zoop面向對象的PHP框架。
這是個穩定,可伸縮並可移植的框架。從誕生到現在的5年間,已經在不少產品開發中被使用。Zoop是一個快速,有效並干凈的框架。它的伸縮性很好,你可以只安裝你需要的功能。
對代碼並不很熟悉的開發者也可以通過Zoop快速的開發安全的web應用。熟練的開發者則可以更加將Zoop的彈性利用到極致。
Zoop建議將display,logic以及數據層(MVC)分開使用。
Zoop由很多組件和項目集合而成,其中包括smarty和prototype AJAX框架,PEAR模塊等。高效的核心組件提供了很多你原本需要自己編碼來實現的功能。Zoop內置的糾錯功能可以通過配置實現生產環境下的錯誤日誌生成,這個錯誤日誌提供了很多信息,可讀性很高,可以更輕易的尋找並排除錯誤。
Zoop的一個特別之處在於其GuiControls,在PHP中是一個相當革新的想法。它提供了很多form widgets與驗證完整的集合到一起,並形成了一個可以輕松打造個性化GuiControls的框架。
10. QPHP
QPHP,意為快速PHP,它是一個與ASP.NET類似的MVC框架。基本上它是這樣一個情況:
◆整合了Java和C#的美感
◆除去了在其他PHP框架中使用的Perl形式的意義含糊的語言
◆大量基於OOP的概念
❹ php 格式文件 怎麼打開急!!!
PHP是編程語言和應用程序伺服器的結合。PHP和其它的編程語言類似,使用變數存儲臨時數值,使用操作符處理變數。PHP的真正價值在於它是一個應用程序伺服器。
當談到應用程序伺服器的時候,我是指一個把幾個不同的技術組合為一個完整的套件的程序。這些技術包括:
* 一個強壯的編程語言。
* 存取資料庫中存儲的數據。
* 支持 Internet協議,尤其是電子郵件和HTTP協議。
注意:應用程序伺服器有許多其它的特性,這里只列出了最基本的特性。
由於提供了這些多種不同技術的前端介面,PHP可以使工作變的很容易。
本章的其它部分講述了有關PHP的許多繁雜資料,以及它在應用軟體開發中起到的作用。
1.1 起源
PHP是由Rasums Lerdorf創建的,它開始是一個簡單的用Perl語言編寫的程序,用來記錄Rasums Lerdorf自己在線簡歷的訪問者。以後它又被用C語言重新寫過,范圍擴大到訪問資料庫。在這期間,有許多人向Rasums Lerdorf要此程序的拷貝,以便自己使用。Rasums Lerdorf為此寫了一些介紹此程序的文檔,並發布PHP v1.0。以後,越來越多的人開始使用PHP,並強烈要求增加一些其他的特性,如循環語句和數組變數等。到這時,其他的一些程序員也開始參與PHP源碼的編寫(主要有Zeev Suraki和Andi Gutmans),很明顯,此時的PHP為了以後的發展,必須重新編寫。因此,PHP v3.0就出現了。
1.2 特性
PHP的特性包括:
* 開放源碼 -- 所有的PHP源碼都可以得到。事實上,所有的源碼都包含在隨書附帶的光碟中。
* 沒有運行費用 -- PHP是免費的。
* 基於伺服器端 -- 由於PHP是在Web伺服器端運行的,PHP程序可以很大、很復雜而不會降低客戶端的運行速度。
* 跨平台 -- 雖然本書是以Linux為重點介紹的,但PHP程序可以運行在UNIX,Linux,或者Windows操作系統下。
* 嵌入HTML -- 因為PHP語言可以嵌入到HTML內部,所以PHP很容易學習。
* 簡單的語言 -- 和Java和C++不同,PHP語言堅持以基本語言為基礎,然而它的功能也強大到足以支持任何類型的Web站點。
* 效率高 -- 和其它的解釋性語言相比,PHP系統消耗較少的系統資源。當PHP作為Apache Web伺服器的一部分時,運行代碼不需要調外部二進製程序,伺服器解釋腳本不需要承擔任何額外負擔。
* 分析XML -- 用戶可以組建一個可以讀取XML信息的PHP版本。
* 資料庫模塊 -- 用戶可以使用PHP存取Oracle、Sybase、MS SQL、Adabase D、MySQL、mSQL、PostgreSQL、dBase、FilePro、Unix dbm、Informix/Illustra等類型的資料庫,以及任何支持ODBC標準的資料庫。
* 文件存取--PHP有許多支持文件存取函數。
* 文本處理--PHP有許多函數處理字元串,其中包括模式匹配的能力。
* 復雜的變數--PHP支持標量、數組、關聯數組等變數,這給用戶提供了以支持其它的高級數據結構的堅實基礎。
* 圖象處理--用戶可以使用PHP動態的創建圖象。
* 更多的其它功能!
1.3 PHP需要花費多少錢?
PHP是免費的。所有的源碼、文檔都可以免費的復制、編譯、列印和分發。用戶的任何一個用PHP編寫的程序都屬於用戶自己,可以按照自己的意願進行處理,而不需要付任何版稅。就PHP本身而言,用戶可以無限制地發布自己編寫的程序。
然而,有著很充分的理由,PHP並不是徹底的「公共領域」代碼。如果PHP源碼是完全的公共領域代碼,很可能就有人對PHP的源碼做很小的修改,然後編譯並出售--換一句話說,從它的創作者中脫離出來。但從另一方面說,如果不公布源碼,很難使想使用它的用戶感到放心。
GNU通用公共許可是一種發布免費軟體的方法,它可以避免其他人佔有你的勞動成果。在符合GNU許可的條件下,源碼可以自由地發布,並且任何一個人都可以使用,但是任何來源於此代碼的程序必須以同樣種類的許可方式發布。換句話說,如果用戶從任何GNU許可下的源碼中得到代碼而編寫自己的程序,用戶必須給任何想得到源碼的人共布自己的源碼。
1.4 PHP語言可以嵌入HTML中
當使用者使用經典程序設計語言(如C或Pascal)編程時,所有的代碼必須編譯成一個可執行的文件,然後該可執行文件在運行時,為遠程的Web瀏覽器而產生可顯示的HTML標記。但另一方面,PHP並不需要編譯(至少不編譯成可執行文件)。使用者可以把自己的代碼混合到HTML中。例如,下面的代碼將顯示「Hello,world!」,PHP代碼在下面以黑體字顯示。
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<?PHP $string = 'world!'; ?>
<H1>Hello,<?php echo $string ?></H1>
</BODY>
</HTML>
PHP應用程序伺服器(本書的主要寫作目的)是緊密集成到Apache Web伺服器中的,可以在一個程序內同時調用它們兩個。當Web瀏覽器請求PHP Web頁面的時候,Web伺服器的PHP部分將被調用進行解釋。Web伺服器在請求的Web頁中尋找<?PHP . . . ?>標記,並按要求執行這些PHP代碼。
由PHP代碼生成的輸出將替代<?PHP . . . ?>標記。例如,當PHP代碼運行後,以前的Web頁面將變成如下所示的內容:
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<H1>Hello,world!</H1>
</BODY>
</HTML>
注意,所有的PHP代碼都消失了,僅僅留下了HTML語句。而由PHP代碼生成的HTML語句在上例中以黑體的形式顯示。
1.5 PHP語言是在Web伺服器端運行
當開發互聯網應用程序時,很重要的一點是要清楚應用程序是在哪一端運行的。PHP總是運行在伺服器端。不要嘲笑對這一點的強調。在以後考慮對應用程序某些特性進行規劃時,有的人可能就會在應用程序在哪裡運行的這個問題上搞錯,不要讓自己也成為這些人中的一個。
由於Java applets,ActiveX,或javascript 都是運行在客戶端的Web瀏覽器中的,因此PHP不能直接和它們進行比較。然而可以很容易的將這些語言與PHP相結合在一起,使用PHP可以很方便地生成所需要的任何HTML代碼,當然也就能激活Java applets和ActiveX控制項,還可以動態生成javascript語句。當對互聯網應用程序開發還很陌生的時候,這也許沒有什麼意義,但是在讀完這本書後,這一切就會變得十分清晰的了。
1.6 PHP無處不在
無處不在是常使用的充滿激情的詞語,到1999年7月,將有60萬左右的Web站點使用PHP,1999年夏天有關Linux和開放代碼運動的大發展很可能使PHP團體有突破性發展。可以在http://www.php.net/usage.php3站點上看到它的發展趨勢圖表。
此外,PHP郵件列表每天能收到大約80個電子郵件,每個月能收到大約2500個電子郵件,這說明PHP是一個非常活躍的開發團體。使用PHP的商業公司有以下幾個,Mitsubishi Motors、Volvo、Red Hat Software、E*Trade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。
1.7 PHP和C或Java相似嗎?
PHP程序和C程序有略微相似的地方,這是由於PHP來源於C、Perl和Java。一些對C語言來講比較麻煩的方面(如處理字元串的技術),由於採用了和Perl相近的技術,在PHP中就不再是麻煩了。PHP中也不包括Java中的一些面向對象特性。
PHP能很好地處理某些低級的任務,如果代碼需要運行的特別快,可以很方便的使用C為PHP程序編寫模塊。
1.8 PHP比ColdFusion、Active Server Page或Java Server Page更好嗎?
以流行的商議方式,我總是回答,「可以是,也可以不是」。
回答是,是由於它的費用(免費)以及可以通過郵件列表、IRC而在世界范圍內有廣泛的支持網路。同時PHP還在不斷地發展著,如果想要一個PHP現在沒有的特性時,請等待幾個月,就有人很快為PHP編程而加上此種特性。
回答不是,是由於商業軟體有比PHP更多的特性。例如,Allaire's ColdFusion有一個已證實可靠的搜索引擎組件。微軟的Active Server Page技術提供了與Outlook、電子郵件和工作組程序相結合的能力。Java Server Page讓使用者可以使用互聯網上的大量開放源碼模塊。
1.9 總結
對於遍及互聯網上的PHP,本章僅僅簡要提到了它的一些特性,本章也介紹了當設計互聯網應用程序時,PHP為什麼是最好的編程工具之一的原因。
php文件一樣可以用BT軟體打開的,放心使用,沒問題的。我以前也下過好多PHP的種子文件。
你是要讓你的裝了IIS的機器支持PHP呢還是只是單純的打開*.php的文件?
如果是要支持PHP,那麼你要裝專門的PHP解釋器。
首先你去下載php-4.3.4-Win32.zip。
下面為配置步驟:
1)將php-4.3.3RC4-Win32.zip裡面的所有文件和文件夾解壓縮並放置在C:\\php4\\文件夾中,沒有自己創建該文件夾
2)進入php4文件夾,查看根目錄和子目錄,把所有.dll文件都統統復制粘貼到C:\\WINNT\\system32(WIN2K)或C:\\WINDOWS\\system32(WINXP)中
3)把php4文件夾裡面的php.ini-dist和php.exe文件復制到
C:\\WINNT\\(WIN2K)或C:\\WINDOWS\\(WINXP)中,並將php.ini-dist文件改為php.ini
4)雙擊php.ini打開該配置文件,進行下面3個地方的修改:
1> 把extension_dir = "C:\\php4\\extensions" 改為你安裝php4的 extensions文件夾路徑
2> 把 ;cgi.force_redirect = 1 改為 cgi.force_redirect = 0
3> 把 register_globals = Off 改為 register_globals = On
4> 找到 ;Windows Extensions 段,你應該可以看到如下代碼
;
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
;extension=php_curl.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
;extension=php_zip.dll
具體還得看你需要載入哪些.dll文件,不過你按照下面我這樣改也行,主要是要載入的.dll文件就去掉前面的分號( ; ) :
;
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
;extension=php_curl.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
;extension=php_zip.dll
5)再次打開控制面板-管理工具-Internet服務管理器,在"默認web站點"上右鍵單擊,選擇"屬性"
6)選中"默認 Web 站點 屬性"窗口的"主目錄"選項卡,點擊右下角的"配置"按鈕,出現"應用程序配置"窗口,點擊"應用程序映射"下面的"添加"按鈕,添加下面的程序映射:
可執行文件: C:\\php4\\php.exe %s %s (也就是你的php4文件夾路徑)
擴展名: .php
確定完成配置!
7)切換到"默認 Web 站點 屬性"窗口的"ISAPI篩選器"選項卡,點擊右邊的"添加"按鈕,添加下面的一個篩選器:
篩選器名稱: PHP
可執行文件: C:\\php4\\sapi\\php4isapi.dll (也就是你的php4文件夾的 sapi文件夾路徑)
確定後關閉"Internet服務管理器"
8)繼續切換到"默認 Web 站點 屬性"窗口的"文檔"選項卡,點擊右邊的"添加"按鈕,添加如下"啟用默認文檔":
index.php 也可以添加 index.php3 index.php4 等等 看你的需要而定
點擊左邊的"↑"按鈕,把index.php文檔提升到最上面
現在你的IIS也支持PHP了.
PHP 是一種新型的 CGI 程序編寫語言.應該說是個嵌入式腳本文件。和ASP、JSP有很多類似的功能。唯一不同的是,ASP要整站的解釋在傳遞,而PHP則可以嵌入HTML代碼里,和HTML一起發送。要讀.PHP文件就要用PHP解釋器。現在用的是PHP V4.3.0有支持Windows和 Unix/Linux的版本。當然你還要在自己機子上虛擬主機,可以用很出名的Apache軟體。
.php可以用文本編輯器(如記事本、emeditor、phpedit等)打開。如果要運行它得安裝相應的php解釋器和web服務支持才行。
參考資料:http://..com/question/3222075.html
❺ PHP語言需要避免的誤區
PHP語言需要避免的誤區
PHP是一種非常流行的開源伺服器端腳本語言,你在萬維網看到的大多數網站都是使用php開發的。但是,你大概很奇怪的注意到有少部分的人發誓要離php 遠遠的。但是令人更奇怪的是或者很震驚的說他們不用php是因為一些被證實的語言缺點。他們決定不用php,是因為誤解。那麼誤解是什麼呢?和我一起來看看吧!
1. PHP是一種面向對象語言,但面向對象並不徹底
這完全不對。所有認為php不是徹底面向對象的程序員,尤其是Java程序員,都需要上一個PHP的基礎培訓;他們會發現PHP中大量面向對象的特性。例如:介面、方法、抽象類等等。我同意早期的PHP版本確實不支持太多面向對象的特性,但PHP5已經有強大的面向對象支持。而且,你一定想不到編碼在 PHP中會變得如此簡單,那是因為PHP和面向對象結合的原因。
所以,消除這個誤解吧。
2.PHP無法實現特定功能
我很清楚這種表述很含糊,但是我不能想出任何更好的說法。這是一個很含糊的誤解,開發人員認為PHP不能幫助他們實現一些諸如內存訪問的功能或者一些 PHP主要發行版沒有提供支持的功能。但事實是PHP是一種可擴展的語言,所以你需要做的'是用C或者C++編碼,然後創建對應的擴展。
其實,你根本不需要自己動手去創建擴展,因為這里已經有數以百計的可用擴展。你唯一需要做的就是去尋找它們。
3.PHP 是不安全的
開發者對PHP的另外一個誤解就是PHP網站和應用是不安全的。但是,為什麼你會希望它在默認情況下是安全,為什麼不編寫安全的代碼? 我知道這里一直存在很多不安全的PHP代碼,因為最初的學習曲線是簡單的而且很容易上手。所以,作為一個開發者,你需要使它盡可能的安全。
.Net可以幫助你在默認情況下是安全的,相比之下PHP確實缺少很多。但是如果你是一個訓練有素的程序員,那麼你其實不要默認情況的安全幫助。Include通常是安全的,但是你需要要小心。如果它們的路徑是動態生成的,對指令的透徹理解可以幫助你讓代碼更安全。
4. 它不能適應大型應用
大型復雜應用需要建立在自身可靠和高性能的語言之上,這是PHP在一定程度上所沒有的。但是,如果你設計和開發的應用程序架構穩定,為什麼你會對它的性能和可擴展性有疑問呢?
事實上一些頂尖網站,如Facebook、維基網路和雅虎等等,都是基於PHP構建的,就像我們所想的那樣,這些巨型網站都工作的很好。
5. PHP只能用於網站開發
這也是一個誤解,盡管看起來它有點合乎邏輯,因為PHP是網站開發中最常見的語言。但也有一些被稱為命令行界面的東西,這可以確保你的PHP應用程序可以在Web伺服器之外運行。
你可能不相信,但即使是那些很大程度上取決於CPU能力的應用程序,也可以用PHP開發的,使用PHP CLI來運行。
更重要的是,如果你想使用PHP開發桌面應用程序,不用擔心,使用Windows特定擴展你可以做到這一點。
6.開發過程慢
這是一直廣為流傳的誤解。我不知道起源於何處?這個流言可能來自於曾經一個時期php代碼很亂並且代碼中四處充斥著Mysql語句(他們以此為反例,但是實際上我們都不這樣用)。問題是為什麼這樣開發過程就慢了?當大量的php框架出現時,可以大大的加速開發的過程。毋庸置疑,你可以在短時間內開發出很大的程序,不論它有多麼的復雜。所以,你用php開發一點都不慢,特別是當你使用php框架的時候。
7.專業開發人員不使用PHP
PHP是針對初學者的,它是為那些不是認認真真做開發的人設計的。這些說法都和PHP的使用有關。這只是一種誤解,認同它沒有任何意義。這里有如此多的網路應用,包括一些大型的,都是使用PHP構建的。可以想像這些說法是多麼不正確。
8. 性能問題
這是一個棘手問題。這不是一個誤解。和硬幣有兩個面一樣,這個問題也是兩方面的。事實上到處充斥著垃圾代碼,隱式轉換、不適用的模塊、缺少操作符重載等等都能影響一個php應用的性能。但是這個依賴於你是不是有足夠的能力去用好這個語言,用它編寫穩定地、快速地應用。
性能是由你設計的架構和你寫的代碼來決定的!
9. 便宜沒好貨
這條貌似在邏輯上很站得住腳,但是用到php上那就是完全是誤解了!事實上,php的最大優勢就是他的免費和開源,這意味著大多數提供應用開發服務的開發 者必須都精通它。雖然免費開源會帶來一定問題,但是這也為了使用他們服務的客戶提供成本優勢。與商業開發語言相比較,php的開發成本比價低,但是這並非 意味著它的質量值得懷疑。和正確的開發者一起工作,可以獲得更高性能的php應用。
10. PHP言過其實
真是這樣么?你隨口瞎說的吧。我不認為這樣,還有很多的開發者也都不這樣認為。
這不是所有php謊言的終結者。隨著php語言不斷的發展,變得越來與強大,誤解也會跟著增長的。但請不要被他們忽悠了。多讀,多問,自己動動手,然後你就知道,是不是真的了。
;❻ 在PHP中「||」是什麼意思
邏輯運算符 表示 或
if($a || $b == TRUE) //如果 $a 或 $b 任一為TRUE。
也可寫為: if($a or $b == TRUE)
or與||是同一邏輯運算符的兩種寫法。
----------------以下為一些常用邏輯運算符------------------------
$a and $b 邏輯與 TRUE,如果 $a 與 $b 都為 TRUE。
$a or $b 邏輯或 TRUE,如果 $a 或 $b 任一為TRUE。
$a xor $b 異或 TRUE,如果 $a 和 $b 不同時
! $a 邏輯非 TRUE,如果 $a 不為 TRUE。
$a && $b 邏輯與 TRUE,如果 $a 與 $b 都為TRUE。
其中and與&& 、or與||是同一邏輯運算符的兩種寫法。
❼ 什麼是腳本語言
腳本語言的定義腳本語言(Script languages,scripting programming languages,scripting languages)是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。此命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括操作系統層,如計算機游戲,網路應用程序,字處理文檔,網路軟體等。在許多方面,高級編程語言和腳本語言之間互相交叉,二者之間沒有明確的界限。一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組序列。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經超過簡單的用戶命令序列的指令,還可以編寫更復雜的程序。簡介腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。[1]它的命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批量處理語言或工作控制語言。[2]一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。[3](概述圖片來源:[4])特點1、腳本語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等編程語言之間。HTML通常用於格式化和鏈接文本。而編程語言通常用於向機器發出一系列復雜的指令。2、腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相像一些,其也涉及到變數。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些.3、與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。註:腳本語言一般都有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。Python、JAVASCRIPT,ASP,PHP,PERL,Nuva都是腳本語言。C/C++編譯、鏈接後,可形成獨立執行的exe文件。4、腳本語言是一種解釋性的語言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。5、腳本語言一般都是以文本形式存在,類似於一種命令。舉個例子說:如果建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件,為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件後,自己的程序用這種規則來理解編寫人的意圖,並作出回應,那麼,這一套規則就是腳本語言。[5]6、相對於編譯型計算機編程語言:用腳本語言開發的程序在執行時,由其所對應的解釋器(或稱虛擬機)解釋執行。系統程序設計語言是被預先編譯成機器語言而執行的。腳本語言的主要特徵是:程序代碼即是腳本程序,亦是最終可執行文件。腳本語言可分為獨立型和嵌入型,獨立型腳本語言在其執行時完全依賴於解釋器,而嵌入型腳本語言通常在編程語言中(如C,C++,VB,Java等)被嵌入使用。[1][6]7、和系統程序設計語言相比:不同是腳本語言是被解釋而系統程序設計語言是被編譯。被解釋的語言由於沒有編譯時間而提供快速的轉換,通過允許用戶運行時編寫應用程序,而不需要耗時的編譯/打包過程。解釋器使應用程序更加靈活,腳本語言的代碼能夠被實時生成和執行。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序設計師快速完成程序的編寫工作。[1]編輯本段腳本語言的優缺點優點快速開發:腳本語言極大地簡化了「開發、部署、測試和調試」的周期過程。容易部署:大多數腳本語言都能夠隨時部署,而不需要耗時的編譯/打包過程。同已有技術的集成:腳本語言被Java或者COM這樣的組件技術所包圍,因此能夠有效地利用代碼。易學易用:很多腳本語言的技術要求通常要低一些,因此能夠更容易地找到大量合適的技術人員。動態代碼:腳本語言的代碼能夠被實時生成和執行,這是一項高級特性,在某些應用程序里(例如JavaScript里的動態類型)是很有用也是必需的。[7]缺點腳本語言不夠全面:它們會要求一門「真正的」編程語言的存在,必須找一個資料庫驅動程序將其內置進腳本語言里。腳本語言並不是軟體工程和構建代碼結構的最佳選擇,例如面向對象和基於組件的開發。腳本語言通常不是「通用」語言,但是能夠根據專門的應用來調整,例如:PHP和萬維網。[7]編輯本段腳本語言的應用和發展一、應運(1):作為批次處理語言或工作控制語言。許多腳本語言用來執行一次性任務,尤其是系統管理方面。DOS,Windows的批處理文件和Unix的shell腳本都屬於這種應用;(2):作為通用的編程語言存在,如Perl、Python、Ruby等。由於「解釋執行,內存管理,動態」等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言;(3):許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦游戲系統使用一種自定義腳本語言來表現NPC(Non-Player Character,Non-Playable Character,Non-Player Class)和游戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如Quake C,Modeled After C),但它們有自定義的功能;(4):網頁中的嵌入式腳本語言。熟知的HTML(Hyper Text Mark-up Language)即超文本標記語言,就是一種腳本語言,它的解釋器就是瀏覽器。JavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標准化保證了它成為流行的通用嵌入式腳本語言。另外,隨著動態網頁技術發展,ASP、JSP、PHP等嵌入網頁的腳本語言正被廣泛使用,不過這些腳本要通過Web Server解釋,而Html則被瀏覽器執行;(5):腳本語言在系統應用程序中嵌入使用,作為用戶與系統的介面方式。在工業控制領域,PLC編程、組態軟體的腳本語言是擴充組態系統功能的重要手段;在通信平台領域,IVR(自動語音應答)流程編程;Office辦公軟體,提供的宏和VBA;其他應用軟體如ER Studio提供的Basic MacroEditor,用戶可以編寫Sax Basic腳本操作ER圖,生成Access庫、導出Word文檔等擴展功能。[8] 這類的常見的有JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua。腳本語言的特點是語法簡單,一般以文本形式保存,並且不需要編譯成目標程序,在調用的時候直接解釋。這可以當做是腳本語言的判斷標准,比如說JavaScript,你只需要用記事本新建一個Html文件,在裡面加上一段腳本就可以了,在瀏覽器打開Html文件時自然會調用JS腳本。[9]一、工作控制語言和shellShell 腳本此類腳本用於自動化工作控制,即啟動和控制系統程序的行為。大多的腳本語言解釋器也同時是命令行界面,如Unix shell和MS-DOS command。其他如AppleScript,可以為系統增加腳本環境,但沒有命令行界面。具體分類有:1.4NT2.AppleScript3.ARexx(Amiga Rexx)4.bash5.csh6.DCL7.JCL8.ksh9.Cmd.exe batch(Windows,OS/2)10.command batch(DOS)11.REXX12.tcsh13.sh14.Winbatch15.Windows PowerShell16.Windows Script Host17.zsh二、GUI 腳本GUI出現帶來一種專業的控制計算機的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動。它經常用來自動化重復性動作,或設置一個標准狀態。理論上它可以用來控制運行於基於GUI的計算機上的所有應用程序,但實際上這些語言是否被支持還要看應用程序和操作系統本身。當通過鍵盤進行互動時,這些語言也被稱為宏語言。具體分類有:1.AutoHotkey2.AutoIt3.Expect三、應用程序定製的腳本語言許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦游戲系統使用一種自定義腳本語言來表現NPC(non-player character,non-playable character,non-player class)和游戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。具體分類:1.Action Code Script2.ActionScript3.AutoLISP4.BlobbieScript5.Emacs Lisp6.Game Maker Language7.HyperTalk8.IPTSCRAE9.IRC script10.Lingo11.Matlab Embedded Language12.Maya Embedded Language13.mIRC script14.NWscript15.QuakeC16.UnrealScript17.Visual Basic for Applications18.VBScript19.ZZT-oop四、WEB編程腳本應用程序定製的腳本語言中有一種重要的類別,用於提供WEB頁面的自定義功能。它專業處理互聯網通信,使用網頁瀏覽器作為用戶界面。當然,大多現代WEB編程語言都比較強大可以做一些通用編程。具體分類:1.ColdFusion(Application Server)2.Lasso3.Miva4.SMX5.IPTSCRAE-一些網路開發團隊用於創建論壇的工具五、文本處理語言處理基於文本的記錄是腳本語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理調用UNIX基於文本的配置和LOG文件。Perl最早是用來產生報告的,現在它已經成了全面成熟的語言。具體分類:1.Awk2.Perl3.sed4.XSLT六、通用動態語言一些語言,比如Perl,從一門腳本語言發展成了更通用的編程語言。由於「解釋執行,內存管理,動態」等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言。1.APL2.Dao3.Dylan4.Groovy5.Lua6.MUMPS(M)[10]7.newLISP8.Nuva9.Perl10.PHP11.Python12.Ruby13.Scheme14.Smalltalk15.SuperCard16.Tcl(Tool command language)七、擴展/可嵌入語言少數的語言被設計通過嵌入應用程序來取代應用程序定製的腳本語言。開發者(如使用C等其它系統語言)包入使腳本語言可以控制應用程序的hook。這些語言和應用程序定製的腳本語言是同種用途,但優點在於可以在應用程序之間傳遞一些技能。具體分類:1.Ch(C/C++ interpreter)2.Dao3.ECMAScript亦稱DMDScript,JavaScript,JScript4.GameMonkeyScript5.Guile6.ICI7.Lua8.RBScript(REALbasic Script)9.Squirrel10.Tcl11.Z-ScriptJavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標准化保證了它成為流行的通用嵌入性語言。Tcl作為一種擴展性語言而創建,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。八、其它1.BeanShell(scripting for Java)2.CobolScript3.Escapade (server side scripting)4.Euphoria5.F-Script6.Ferite7.Groovy8.Gui4Cli9.Io10.KiXtart11.Mondrian12.Object REXX13.Pike14.Pliant15.REBOL16.ScriptBasic17.Shorthand Language18.Simkin19.Sleep20.StepTalk21.Visual DialogScript
具體的網路上有介紹,可以去看看~望採納!