php的概述
㈠ php工程師的職業概述
PHP技術人才,正迎合了目前的互聯網的發展趨勢;PHP作為非常優秀的、簡便的Web開發語言,和linux,Apache,Mysql緊密結合,形成LAMP的開源黃金組合,不僅降低使用成本,還提升了開發速度,滿足最新的互動式網路開發的應用,這使得php軟體工程師成為一個發展迅速的職業。
㈡ 誰能簡單概述下php中的模板和框架
模板我接到的就smarty,但是smarty主要是模板引擎,功能是將MVC中view層的php和html代碼分離,並不算框架,比如將<?php echo $var;?>替換為<!--{$var}-->,以便讓美工可以更好的閱讀html布局,而現在php主流的框架一般都是MVC的,同時,會提供比較豐富的功能組件,比如許可權控制,比如將smarty也內置進來,我自己用過的有yii.thinkphp,zend,這些都是框架,框架開始有自己的特定的規則了,就想yii里的變數是要實現定義一樣,不然會報錯,而且框架的效率高,而且封裝了很多函數,要精通的話是需要花時間的
㈢ 有什麼好的php的書!!!
PHP 5與MySQL 5 Web 開發技術詳解
本書是目前中文版本第一個真正介紹PHP5及MySQL5新增語法與功能的權威寶典!
本書本著精、全、要三宗旨,從理論中延伸,從實踐中深入,詳實並完善描述了PHP5的開發特性與MySQL5資料庫,如PHP數組與表單處理、PHP5面向對象開發、Ajax、CLI、字元流處理、加密技術、圖片處理及PHP代碼優化,以及存儲過程,游標、事務等進階內容。書中第二部分的開發實例是作者開發的原創作品,該部分內容不僅會令讀者的開發水平有所增進,而且可在案例的基礎上進行二次開發,做出符合自己業務的網站系統。
本書既可作為初學者或剛剛從其他語言轉做PHP開發的程序員和軟體工程師的學習參考書,也可作為掌握PHP5的進階應用及高級知識的案上學習指南。
目錄
第一篇PHP5基礎知識
第1章PHP5概述
第2章PHP5開發基礎
第3章正則表達式
第4章PHP數組
第二篇PHP5核心應用與規范
第5章表單——處理用戶輸入
第6章PHP加密技術
第7章PHP國際化與本地化
第8章PHP開發規范
第9章PHP5面向對象開發
第10章PHP會話管理
第11章PHP輸入輸出緩沖
第12章文件系統與字元流
第三篇MySQL5與PHP5介面
第13章Wed資料庫設計
第14章PHP與MySQL資料庫介面
第15章MySQL5資料庫數據操縱
第16章PHP與MySQL資料庫介面
第17章PHP資料庫抽象
第四篇PHP5進階與技巧
第18章Smrty與模板技術
第19章PHP和Ajax技術
第20章使用PHP編寫Shell
第21章PHP網路開發
第22章PHP文件上傳
第23章圖片與媒體處理
第24章XML與RSS
第25章Wed服務與SOAP
第26章PHP與WAP技術
第五篇PHP5調試、升級與優化
第27章錯誤與異常處理
第28章升級到PHP5
第29章PHP優化技巧
第2部分實戰PHP5
第30章實例開發:會員注冊系統
第31章實例開發:圈子系統開發
第32章實例開發:愛問系統
第33章實例開發:多用戶博客系統
附錄APHP在線資源
附錄BZend Core安裝
附錄CPHP擴展開發
附錄DMySQL字元集與整理
附錄E代碼頁與Charset對照表
附錄Fphp.ini配置詳解
附錄GHTTP返回代碼表(RFC2068)
官方書評:
作者功力深厚,寫這本書也很專心細致,內容很多,寫的非常詳細。涉及到PHP開發方方面面的問題,既有總體把握,又有實現細節,有許多針對日常會遇到的問題、案例,提供可直接應用上的解決方案,又有深入的、循序漸進的描述。解析了PHP5以及MySQL5的技術細節,是一本初學者入門與熟練掌握php,中級php開發者進階的一本好書籍。兼顧到了「工程師」和「程序員」兩種讀者。而且能在phpchina論壇熱心地與大家交流,及時解答PHPer的問題,實為難得。當然,任何事情都不是十全十美,這本書同樣也有一些不足的地方,就是書中一些細節的東西把握不夠好,有不少的錯漏,不過瑕不掩瑜。
㈣ PHP基礎教學有有那些
PHP概述
變數
HTML表單和PHP
使用數值
使用字元串
控制結構
使用數組
創建Web應用程序
cookie和session
創建函數
文件和目錄
資料庫介紹
正則表達式
安裝和配置
㈤ 幫忙概述下PHP,apach,linux,mysql,dreamweaver,急
Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動態網站或者伺服器的開源軟體,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平台。隨著開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟體形成三足鼎立之勢,並且該軟體開發的項目在軟體方面的投資成本較低,因此受到整個IT界的關注。從網站的流量上來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案.
㈥ PHP與ASP,asp.net有什麼不同
進行 Web 開發時,您有許多選擇。這些方法中許多都涉及到預處理 — 即,利用特定的標記將代碼嵌入到 HTML 頁面中,這些標記告訴預處理器,它們包含代碼,並且應對它們作出處理。與 CGI 非常相似,這些代碼在伺服器上運行,並返回一些內容,這些內容表現為發回給瀏覽器的結果 HTML 頁面的部分外觀。開放源代碼腳本語言 PHP 和 Microsoft 的 ASP.NET 框架中的語言都屬於這種類型;JavaServer Pages (JSP) 和 Perl/Mason 也以這種方式運行。
在此,我將重點講述 PHP — Oracle 已選擇合並到其產品中的技術 — 和 ASP.NET。我將概述兩者的各種優勢和弱點,並著重討論那些將幫助您決定開發項目應選擇哪種技術的因素。有很多因素需要考慮,不同的項目可能訴諸於不同的技術。總之,您將看到在價格、速度和效率、安全性、跨平台支持等方面的逐項比較,以及開放源代碼解決方案的優勢。
什麼是 ASP.NET
ASP 最新的版本 ASP.NET 並不完全與 ASP 早期的版本後向兼容,因為該軟體進行了完全重寫。早期的 ASP 技術實際上與 PHP 的共同之處比與ASP.NET 與 PHP的共同之處多得多,ASP.NET 是用於構建 Web 應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。ASP.NET 可以使用腳本語言(如 JScript、VBScript、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強健性,是以損失效率為代價的。ASP.NET 在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於 Web 的應用程序,這些局限可能是一個嚴重的問題,因為在 Web 上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為 Web 伺服器上的一個問題。
什麼是 PHP
PHP 是基於預處理 HTML 頁面模型的一種腳本語言。當 Web 伺服器中的 PHP 預處理器發現像下面這樣的 PHP 語言標記時,將調用 PHP 引擎來執行該代碼:
<?php
代碼
?>
使用過命令式編程語言的編程人員都將會對 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 代碼就變得更加強健和簡潔。
<?php
class 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 能夠檢查它是否是正確的類型,並在檢查失敗時產生類型不匹配錯誤。
還有其他特性(如靜態方法和變數以及抽象類)。
參考資料:http://www.webzuo.net/child_content/site_programme/php/sp_php028.php?id=123
㈦ 請教一下ASP和PHP這兩種語言 現在來看各自的利弊
這是一個經常被提出的問題,並且它很容易把人們帶入爭論Linux還是Windows的歧途。這樣的爭論事實上反映出了對於相互競爭的Web開發技術要進行並行分析是多麼困難的一件事情,而這一難度同時因為開發人員對任何可比較操作系統的不同意見而大大增加。
所以與其繼續參與到這樣的爭論中,我們還不如來看看每一項技術對於特定Web開發以及運行環境所表現出的優勢。盡管ASP和PHP的相似程度大於其中任意一種與ASP.NET的相似程度,我們還是要討論ASP.NET。原因是開發人員常常將其與ASP相混淆,並且在微軟的努力下ASP.NET的確會在將來完全取代ASP。
基本理論——特點概述
PHP——超文本預處理器(Hypertext Pre-processor)
PHP是開放源代碼伺服器端的腳本語言,在語法上同c語言非常類似。盡管最初是被設計用於基於Linux的Apache Web 伺服器系統,現在的PHP已經被移植到了任何操作系統並兼容任何標准Web伺服器軟體。由此也可以得出PHP的三大主要優勢。首先它是跨平台的技術,因此PHP應用程序可以被方便的移植——當然這還要取決於諸如廠商特定資料庫等需要集成的額外組件。這樣的可移植性還帶來了另一方面的優勢,即絕大部分的Web主機提供商都會支持PHP,因此根據需要更改主機將會非常方便。
第二點,由於PHP同C編程語言有很多相似之處,對於熟悉相關語法的開發人員來說,PHP則非常容易上手——這種語法同樣在Java、JavaScript以及Perl中得到應用。第三,由於是開放源代碼產品,PHP將繼續快速發展,更為重要的是相關漏洞補丁將免費的定期植入到核心庫中。
此外,在一些特定的編程需求下,PHP對於開發人員顯示出了更為誘人的吸引力。首先,PHP有內建庫支持對於圖片及PDF文檔的直接創建和相關操作。這意味著當一個應用程序調用包含有anti-aliased類型文本的動態創建菜單圖像,或者是需要導出Acrobat格式頁面時,PHP都將是解決此類問題的理想技術。盡管這些功能在理論上也可以通過其他與PHP相競爭的技術獲得,但往往其他技術需要安裝第三方自定義組件才能實現。
另一點使得PHP成為編寫伺服器腳本最佳選擇的是在處理連接mySOL或者Postgres資料庫一類的問題時PHP的良好表現。盡管對於mySOL或者Postgres資料庫的訪問可以通過ASP技術藉助ODBC連接來實現,但這常常需要系統管理員進行額外的配置。幸運的是,這點限制在ASP.NET中得到了改正,當需要建立類似於使用MS SQL Server的直接資料庫連接時可以通過mySQL提供數據。
ASP——動態服務頁面(Active Server Pages)
微軟將ASP引入Windows NT Server 4並將其作為IIS Web伺服器下的動態Web應用程序的默認使用平台。由於它使用VBScript(Visual Basic語言的一個分支),ASP立即被熟悉Microsoft IDE——Visual Studio編程的開發人員所追捧。隨著腳本語言的不斷發展,研究人員對ASP並沒有引入太多功能使之加入到技術競爭的行列。因此,在PHP中可以看到的諸如圖像操作等功能沒有集成到ASP中。但開發人員仍然可以通過DLL文件的形式編寫(或者安裝)第三方COM對象來完成類似的工作。在伺服器自身允許的情況下,通過這種方式可以編寫代碼來完成任何動作。當然,造成的缺陷是這將導致為了配置這些服務開發人員不得不與桌面系統進行交互——對於Web開發人員來說這項功能並不是必須的。
ASP的優勢是在企業環境中微軟伺服器幾乎無處不在。此外,MS SQL Server同樣具有廣泛的市場,並且能很好的支持ASP(這並不會讓人感到驚奇)。盡管事實上通過ODBC可以兼容任何數據來源,但SQL Server以及文件DSN訪問(file DSN access)可以在代碼一級得到實現。
ASP.NET
是選擇ASP還是PHP的爭論正在隨著.NET的崛起而越來越顯得多餘。的確,過去長達數年的爭論將隨著是選擇Java還是.NET技術(或是兩者)答案的揭曉而終結。ASP以及ASP.NET的唯一聯系是二者都使用VBScript。而單獨就.NET而言,它可以使用VBScript以及其他大約20種語言。
對於ASP以及PHP來說,將ASP.NET看作是另外一種語言的原因是它運行在完全不同的構架之上。前者是翻譯腳本語言,而.NET則是經過編譯的framework。這就意味著首先Web頁面的運行速度將會有極大提高。同時,源代碼更加安全且更為健壯。此外,ASP.NET給Web編程帶來了新的理念——即「code-behind頁面」的思想。按照code-behind思想,每一個HTML頁面都是由自身經過編譯的程序化指令進行驅動。因此,HTML——或稱之為表現層——很大程度上脫離了應用程序的商業邏輯。盡管這樣的分離也可以通過PHP和ASP來實現,但這並非同ASP.NET一樣屬於自身技術的主要部分。
ASP.NET的另一好處是它完整的集成了對XML以及Web服務的各種支持。對.NET而言可以使用非常廣泛的安全以及密碼系統庫,這對於金融機構和企業數據應用程序尤為有用。就缺陷而言,即使是具備豐富經驗的開發人員也會發現使用.NET可能把自己搞糊塗。不考慮開發者對於所使用的編程語言的熟悉程度,對於Web開發人員來說,在程序範例方面難度的大幅提升可能會成為他們融入ASP.NET的主要障礙。對ASP.NET應用程序來說主機同樣是個問題,ASP.NET並未同ASP或者PHP一樣獲得了主機提供商的廣泛支持,無法在同一級別上展開競爭。
實踐——語言比較
變數聲明
在VBScript中(ASP和ASP.NET都使用VBScript),在使用變數之前並不一定要對其進行聲明,盡管技術文檔通常建議這么做。使用Option Explicit聲明,開發人員可以通過程序強制進行變數聲明。在PHP中,變數可以被聲明,盡管沒有辦法強制開發人員做到這點。的確,在使用之前變數都自動進行聲明。PHP變數的優點在於變數可以被設置成為其他變數的引用(references),而在VBScript中變數只能通過值來定義。
<%
' VBScript Example
Option Explicit
myVar = 1
myOtherVar = myVar
myVar = 2
' myResult will be 3
myResult = myVar + myOtherVar
%>
<?
// PHP Example
$myVar = 1;
'Use the ampersand to make a reference
$myOtherVar = &$myVar;
$myVar = 2;
// $myResult will be 4
$myResult = $myVar + $myOtherVar;
?>
變數收集
在PHP以及ASP中使用表單以及query string變數的方法非常相似。有很多辦法可以訪問表單以及query string變數的集合,例如通過name或者將其作為數組。在ASP.NET中情況則有很多不同,尤其是對於表單域。不同於盲目的尋找提交過的表單變數,code-behind可以對HTML頁面中的每一個表單域了如指掌,並可以按照任何已知事件的執行為條件觸發對這些表單域的值進行檢查。其中一個事件是「postback」,當表單被用戶提交時此事件被觸發。其他的事件可以是客戶端的程序,並且可以通過JavaScript來觸發。在ASP.NET中,二者沒有性質上的區別。
<%
' ASP Example
myFormVal = request.form("myInputField")
myQSval = request.querystring("myQSitem")
myVal = request.item("myFormOrQSitem")
%>
<?
// PHP 4.1+ Example
$myFormVal = $_POST['myInputField'];
$myQSval = $_REQUEST['myQSitem'];
// PHP 3+ Example
$myFormVal = $HTTP_POST_VARS['myInputField'];
// If register_globals = on
$myVal = $myFormOrQSitem;
?>
<!-- ASP.NET example -->
<html>
<script language="VB" runat=server>
Sub SubmitBtn_Click(Sender As Object, E As EventArgs)
Message.Text = "Hello " & Name.Text
End Sub
</script>
<body>
<form action="action.aspx" method="post" runat="server">
Name: <asp:textbox id="Name" runat="server"/>
<asp:button text="OK" OnClick="SubmitBtn_Click"
runat="server"/>
<asp:label id="Message" runat="server"/>
</form>
</body>
</html>
字元串連接(String Concatenation)
PHP似乎對此問題給予了足夠的重視,它允許將變數插入到字元串中而無需考慮通常的串連(Concatenation)問題。ASP.NET則把整個過程弄得比較麻煩,需要藉助其StringBuilder類,但由此ASP.NET的運行速度也會快很多。
<?
// PHP Example
$link = mysql_connect("host", "user", "password")or die("mysql_error());
mysql_select_db("database") or die("Could not select database");
$query = "SELECT * FROM Table";
$result = mysql_query($query) or die(mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($line as $col_value) {
//do something
}
}
?>
連接資料庫
對於資料庫的連接問題,每種技術都表現出了各自突出的規范性。首先,每種情況都要建立到資料庫的連接。對於PHP,在建立之後選擇資料庫(對於ASP以及ASP.NET則將在連接階段完成)。隨後將建立一個詢問,並將其傳送給資料庫,由此可能產生也可能不會產生一條返回記錄。
由於在本質上ASP.NET更為以對象為導向,並且支持復雜的錯誤處理(error handling),因此無論是相對於PHP還是ASP,在完成簡單任務方面ASP.NET可能會需要編寫更多的代碼。但在優勢方面,ASP.NET完成顯示數據功能所需要的代碼則大大少於PHP以及ASP——尤其如果使用內建的datagrid控制來自動創建HTML輸出。
<%
'ASP Example
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={SQL Server};Server=MyServerName;" & _
"Database=myDatabaseName;Uid=;Pwd="
const strSQL = "SELECT * FROM Table" Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.OpenstrSQL, objConn
Do While Not objRS.EOF
'do something
objRS.MoveNext
Loop
%>
' ASP.NET Example
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
Dim MyConn As SqlConnection = New SqlConnection("server=(local). . . ")
Dim MyComm As SqlCommand = New SqlCommand("select * from Table", MyConn)
MyConn.Open()
Dim dr As SqlDataReader = MyComm.ExecuteReader()
MyDataGrid.DataSource = dr
MyDataGrid.DataBind()
MyConn.Close()
End Sub
</script>
<body>
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="600"
BackColor="#FFFFFF"
BorderColor="#000000"
ShowFooter="false"
CellPadding=2
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#EEEEEE"
EnableViewState="false"
/>
</body>
</html>
結論
選擇ASP、PHP還是ASP.NET將最終取決於應用程序的需要,以及運行程序的系統環境。開發人員對於相似編程語言或範例的熟悉程度同樣可以作為選擇的因素。記住沒有完美的方法和個人實際情況可以表明哪種技術是最佳選擇。比如,使用ASP.NET為一個Windows伺服器創建一個單頁面的表單郵件應用程序似乎有些大材小用,但對於ASP來說這是極佳的應用環境。如果一個站點需要同Linux Apache伺服器上的mySQL資料庫連接,那麼使用ASP或者ASP.NET則會顯得力不從心。如果能夠提前詳細考慮用戶的個人要求,那麼開發人員在這些相互競爭的技術中進行選擇的過程則已成功了一半。
㈧ 請問什麼是PHP框架,什麼是PHP引擎
框架 是為了方便 開發。 不是必須用 但是 如果你進入公司工作就一定會 用到框架
模版 引擎 比如 Smarty是一個模板類,一般也簡稱為模板。Smarty裡面有專門的模板引擎。模板的主要功能就是邏輯與顯示的分離,也就是PHP和HTML的分離。
㈨ php學習有什麼要求
HP 學習目錄
├─PHP視頻教程 1 LAMP網站構建
│ ├─PHP教程 1.1.1 新版視頻形式介紹
│ ├─PHP教程 1.1.2 BS結構軟體類型介紹
│ ├─PHP教程 1.1.3 現在是Web2.0的時代
│ ├─PHP教程 1.1.4 Web開發標准
│ ├─PHP教程 1.1.5 認識腳本語言
│ ├─PHP教程 1.2.1 動態網站開發所需的web構件1
│ ├─PHP教程 1.2.2 動態網站開發所需的web構件2
│ ├─PHP教程 1.2.3 動態網站開發所需的web構件3
│ ├─PHP教程 1.3.1 Web的工作原理
│ ├─PHP教程 1.3.2 Web工作原理之url解析
│ ├─PHP教程 1.3.3 Web工作原理之動態網站解析
│ ├─PHP教程 1.4.1 介紹了三種主流的Web應用平台
│ ├─PHP教程 1.4.2 主要三種Web平台進行對比
│ └─PHP教程 1.5.1 介紹LAMP網站開發組合概述及發展趨勢
├─PHP視頻教程 2 從搭建你的PHP開發環境開始
│ ├─PHP教程 2.1.1 PHP的幾種運行環境
│ ├─PHP教程 2.2.1 安裝PHP的運行環境
│ └─PHP教程 2.2.2 PHP運行環境的介紹
├─PHP視頻教程 3 PHP基本語法
│ ├─PHP教程 3.1.1 PHP的功能介紹
│ ├─PHP教程 3.2.1 第一個PHP程序
│ ├─PHP教程 3.3.1 PHP語言標記及指令分隔符「分號」
│ ├─PHP教程 3.3.2 PHP程序注釋及空白的使用
│ ├─PHP教程 3.4.1 PHP變數在計算機內存中的存儲方式
│ ├─PHP教程 3.4.2 PHP變數的聲明及變數的命名
│ ├─PHP教程 3.4.3 PHP可變變數
│ ├─PHP教程 3.4.4 PHP引用變數1
│ ├─PHP教程 3.4.5 PHP引用變數2
│ ├─PHP教程 3.5.1 PHP變數類型的介紹
│ ├─PHP教程 3.5.2 PHP布爾類型(boolean)
│ ├─PHP教程 3.5.3 PHP整型(integer)和浮點型(float或double)
│ ├─PHP教程 3.5.4 PHP字元串的聲明及定義
│ ├─PHP教程 3.5.5 PHP字元串中單雙引號的區別
│ ├─PHP教程 3.5.6 PHP字元串的定界符聲明
│ ├─PHP教程 3.5.7 PHP變數的其它數據類型
│ ├─PHP教程 3.6.1 PHP數據類型轉換及強制類型轉換
│ ├─PHP教程 3.6.2 PHP數據類型轉換之自動類型轉換
│ ├─PHP教程 3.7.1 PHP常量的介紹
│ ├─PHP教程 3.7.2 PHP常量的聲明和使用
│ ├─PHP教程 3.7.3 預定義常量
│ ├─PHP教程 3.8.1 PHP中的運算符號有哪些
│ ├─PHP教程 3.8.2 PHP算術運算符
│ ├─PHP教程 3.8.3 PHP自加自減運算
│ ├─PHP教程 3.8.4 PHP自加自減運算需要注意的地方
│ ├─PHP教程 3.8.5 PHP賦值運算符
│ ├─PHP教程 3.8.6 PHP比較運算符
│ ├─PHP教程 3.8.7 PHP邏輯運算符
│ ├─PHP教程 3.8.8 PHP邏輯運算符的特性(短路)
│ ├─PHP教程 3.8.9 PHP中的位運算符1
│ ├─PHP教程 3.8.10 PHP中的位運算符2
│ ├─PHP教程 3.8.11 PHP中的位運算符3
│ ├─PHP教程 3.8.12 PHP其他運算符
│ └─PHP教程 3.8.13 PHP運算符的優先順序和表達式
├─PHP視頻教程 4 PHP的流程式控制制結構
│ ├─PHP教程 4.1.1 PHP流程式控制制概述
│ ├─PHP教程 4.1.2 PHP分支結構
│ ├─PHP教程 4.2.1 PHP單一條件分支結構和雙向條件分支結構
│ ├─PHP教程 4.2.2 58PHP多向條件分支結構(elseif子句)
│ ├─PHP教程 4.2.3 PHP多向條件分支(switch語句)1
│ ├─PHP教程 4.2.4 PHP多向條件分支(switch語句)2
│ ├─PHP教程 4.2.5 PHP巢狀分支結構
│ ├─PHP教程 4.2.6 PHP實例(簡單計算器)1
│ ├─PHP教程 4.2.7 PHP實例(簡單計算器)2
│ ├─PHP教程 4.2.8 PHP實例(簡單計算器)3
│ ├─PHP教程 4.2.9 PHP實例(簡單計算器)4
│ ├─PHP教程 4.3.1 PHP循環結構的介紹
│ ├─PHP教程 4.3.2 PHP循環結構while語句
│ ├─PHP教程 4.3.3 PHP循環結構while的應用
│ ├─PHP教程 4.3.4 PHP循環結構do-while語句
│ ├─PHP教程 4.3.5 PHP循環結構for語句
│ ├─PHP教程 4.3.6 PHP循環結構for語句的應用
│ ├─PHP教程 4.3.7 特殊流程式控制制語句
│ └─PHP教程 4.3.8 PHP流程式控制制語句goto
├─PHP視頻教程 5 PHP的函數應用
│ ├─PHP教程 5.1.1 PHP函數的定義和應用
│ ├─PHP教程 5.2.1 PHP自定義函數的語法格式
│ ├─PHP教程 5.2.2 PHP自定義函數中的參數
│ ├─PHP教程 5.2.3 PHP自定義函數中的返回值(return)
│ ├─PHP教程 5.3.1 PHP局部變數
│ ├─PHP教程 5.3.2 PHP全局變數
│ ├─PHP教程 5.3.3 PHP靜態變數
│ ├─PHP教程 5.4.1 PHP常規參數的函數
│ ├─PHP教程 5.4.2 PHP引用參數的函數
│ ├─PHP教程 5.4.3 PHP默認參數的函數
│ ├─PHP教程 5.4.4 PHP可變個數參數的函數
│ ├─PHP教程 5.4.5 PHP變數函數
│ ├─PHP教程 5.4.6 PHP回調函數
│ ├─PHP教程 5.4.7 PHP製作回調函數1
│ ├─PHP教程 5.4.8 PHP製作回調函數2
│ ├─PHP教程 5.4.9 PHP製作回調函數3
│ ├─PHP教程 5.4.10 PHP系統函數
│ ├─PHP教程 5.5.1 PHP遞歸函數
│ ├─PHP教程 5.6.1 PHP載入自定義的函數庫
│ ├─PHP教程 5.7.1 PHP5.3的新特性匿名函數
│ ├─PHP教程 5.8.1 PHP閉包函數(closures)的概念
│ └─PHP教程 5.8.2 PHP閉包函數(closures)的特性
├─PHP視頻教程 6 PHP中的數組與數據結構
│ ├─PHP教程 6.1.1 PHP數組的概述
│ ├─PHP教程 6.1.2 PHP數組的基本概念及分類
│ ├─PHP教程 6.2.1 PHP數組聲明的特性
│ ├─PHP教程 6.2.2 PHP索引和關聯數組及需要注意的細節
│ ├─PHP教程 6.2.3 PHP使用array()聲明數組
│ ├─PHP教程 6.2.4 PHP刪除數組中的值應用實例(猴子選大王)
│ ├─PHP教程 6.2.5 PHP二維數組
│ ├─PHP教程 6.2.6 PHP多維數組
│ ├─PHP教程 6.3.1 使用for循環遍歷數組
│ ├─PHP教程 6.3.2 使用foreach語句遍歷數組
│ ├─PHP教程 6.3.3 使用foreach語句遍歷數組的應用
│ ├─PHP教程 6.3.4 list()函數的語法結構
│ ├─PHP教程 6.3.5 each()函數的特性
│ ├─PHP教程 6.3.6 使用list( )、each( )和while循環遍歷數組
│ ├─PHP教程 6.3.7 使用數組的內部指針控制函數遍歷數組
│ ├─PHP教程 6.4.1 PHP超全局數組(預定義變數)概述
│ ├─PHP教程 6.4.2 伺服器變數$_SERVER和環境變數$_ENV
│ ├─PHP教程 6.4.3 PHP超全局數組介紹1
│ ├─PHP教程 6.4.4 PHP超全局數組介紹2
│ ├─PHP教程 6.5.1 PHP常用數組函數的分類
│ ├─PHP教程 6.5.2 PHP數組中和鍵值搜索相關的函數1
│ ├─PHP教程 6.5.3 PHP數組中和鍵值搜索相關的函數2
│ ├─PHP教程 6.5.4 PHP數組中和鍵值搜索相關的函數3
│ ├─PHP教程 6.5.5 PHP數組中統計數組元素的個數與唯一性的函數
│ ├─PHP教程 6.5.6 PHP使用回調函數處理數組的函數array_filter()
│ ├─PHP教程 6.5.7 PHP使用回調函數處理數組的函數array_walk()
│ ├─PHP教程 6.5.8 PHP使用回調函數處理數組的函數array_map()
│ ├─PHP教程 6.5.9 PHP中的冒泡(起泡)排序演算法
│ ├─PHP教程 6.5.10 PHP二分法進行快速排序的原理
│ ├─PHP教程 6.5.11 使用PHP程序進一步理解快速排序法
│ ├─PHP教程 6.5.12 PHP數組的排序函數1
│ ├─PHP教程 6.5.13 PHP數組的排序函數2
│ ├─PHP教程 6.5.14 PHP數組的排序函數3
│ ├─PHP教程 6.5.15 PHP多維數組的排序函數
│ ├─PHP教程 6.5.16 PHP拆分、合並、分解與結合數組函數1
│ ├─PHP教程 6.5.17 PHP拆分、合並、分解與結合數組函數2
│ ├─PHP教程 6.5.18 PHP數組與數據結構的函數
│ └─PHP教程 6.5.19 PHP其他有用的數組處理函數
─PHP視頻教程 7 PHP面向對象的程序設計
├─PHP教程 7.1.1 PHP面向對象之面向過程詳解
├─PHP教程 7.1.2 PHP面向對象之面向對象編程思想詳解
├─PHP教程 7.1.3 PHP面向對象的重要優勢及案例分析
├─PHP教程 7.1.4 PHP類和對象之間的關系
├─PHP教程 7.2.1 PHP如何抽象一個類
├─PHP教程 7.2.2 PHP類中的成員屬性和成員方法
├─PHP教程 7.3.1 PHP實例化對象
├─PHP教程 7.3.2 PHP畫圖理解對象在內存中的形式
├─PHP教程 7.3.3 特殊的對象引用」$this」
├─PHP教程 7.3.4 PHP構造方法
├─PHP教程 7.3.5 PHP析構方法
├─PHP教程 7.4.1 復習前面的面向對象知識
├─PHP教程 7.5.1 PHP面向對象封裝性1
├─PHP教程 7.5.2 PHP面向對象封裝性2](http://www.jianshu.com/p/2713d9252da4)
├─PHP教程 7.5.3 PHP面向對象封裝性之魔術方法1
├─PHP教程 7.5.4 PHP面向對象封裝性之魔術方法2
├─PHP教程 7.6.1 PHP類的繼承
├─PHP教程 7.6.2 PHP類的訪問類型控制
├─PHP教程 7.6.3 PHP繼承中的重載(覆蓋)
├─PHP教程 7.7.1 PHP常見的關鍵字
├─PHP教程 7.7.2 static關鍵字的使用1
├─PHP教程 7.7.3 static關鍵字的使用2
├─PHP教程 7.7.4 單態(單例、單件)設計模式
├─PHP教程 7.7.5 const關鍵字
├─PHP教程 7.7.6 魔術方法__toString()
├─PHP教程 7.7.7 魔術方法__clone()
├─PHP教程 7.7.8 魔術方法__call()
├─PHP教程 7.7.9 對象串列化(序列化)1
├─PHP教程 7.7.10 對象串列化(序列化)2
├─PHP教程 7.7.11 PHP數組的串列化(JSON格式)
├─PHP教程 7.7.12 魔術方法__set_state()
├─PHP教程 7.7.13 PHP 5.3以後新增的魔術方法
├─PHP教程 7.7.14 自動載入類__autoload()
├─PHP教程 7.8.1 PHP抽象方法和抽象類1
├─PHP教程 7.8.2 PHP抽象方法和抽象類2
├─PHP教程 7.8.3 PHP面向對象介面技術
├─PHP教程 7.8.4 PHP介面應用的一些細節
├─PHP教程 7.8.5 PHP面象對象的特性多態
├─PHP教程 7.9.1 PHP多態的應用實例
├─PHP教程 7.10.1 PHP圖形計算器需求分析
├─PHP教程 7.10.2 PHP圖形計算器功能設計
├─PHP教程 7.10.3 PHP圖形計算器主程序的實現
├─PHP教程 7.10.4 PHP圖形計算器主程序的步驟及代碼
├─PHP教程 7.10.5 PHP圖形計算器主程序完成檢驗
├─PHP教程 7.11.1 與類有關的魔術常量和函數
├─PHP教程 7.12.1 PHP命名空間的概述
├─PHP教程 7.12.2 PHP定義子命名空間
├─PHP教程 7.12.3 PHP在同一文件中定義多個命名空間
├─PHP教程 7.12.4 PHP命名空間和動態語言特徵
└─PHP教程 7.12.5 PHP使用命名空間:別名導入
├─PHP視頻教程 8 PHP字元串處理
│ ├─PHP教程 8.1.1 字元串的處理方式1
│ ├─PHP教程 8.1.2 字元串的處理方式2
│ ├─PHP教程 8.2.1 常用的字元串輸出函數1
│ ├─PHP教程 8.2.2 常用的字元串輸出函數2
│ ├─PHP教程 8.3.1 去除空格和字元串填補及大小寫轉換函數
│ ├─PHP教程 8.3.2 和HTML標簽相關的字元串格式化函數
│ ├─PHP教程 8.3.3 字元串格式化函數
│ ├─PHP教程 8.4.1 字元串比較函數
│ ├─PHP教程 8.5.1 字元串面試題1
│ ├─PHP教程 8.5.2 字元串面試題2
│ └─PHP教程 8.5.3 字元串面試題3
├─PHP視頻教程 9 PHP正則表達式
│ ├─PHP教程 9.1.1 選擇PHP正則表達式的處理函數庫
│ ├─PHP教程 9.2.1 正則表達式語法介紹1
│ ├─PHP教程 9.2.2 正則表達式語法介紹2
│ ├─PHP教程 9.2.3 正則表達式中的原子1
│ ├─PHP教程 9.2.4 正則表達式中的原子2
│ ├─PHP教程 9.2.5 正則表達式中的元字元1
│ ├─PHP教程 9.2.6 正則表達式中的元字元2
│ ├─PHP教程 9.2.7 正則表達式中元字元中的小括弧
│ ├─PHP教程 9.2.8 模式修正符(單個字元)1
│ ├─PHP教程 9.2.9 模式修正符(單個字元)2
│ ├─PHP教程 9.3.1 字元串的匹配與查找之(strstr、strpos、substr)
│ ├─PHP教程 9.3.2 字元串的匹配與查找之(preg_match)
│ ├─PHP教程 9.3.3 字元串的匹配與查找之(preg_match_all與preg_grep)
│ ├─PHP教程 9.3.4 字元串的分割與連接(explode、implode join、preg_split)
│ ├─PHP教程 9.3.5 字元串的替換(str_replace)
│ ├─PHP教程 9.3.6 字元串的替換(preg_replace)1
│ ├─PHP教程 9.3.7 字元串的替換(preg_replace)2
│ ├─PHP教程 9.3.8 字元串中正則的其它函數
│ ├─PHP教程 9.2.10 如何自己編寫正則表達式(url)
│ └─PHP教程 9.2.11 編寫email正則表達式
├─PHP視頻教程 10 PHP的錯誤和異常處理
│ ├─PHP教程 10.1.1 錯誤報告及設置級別
│ ├─PHP教程 10.1.2 自定義PHP的錯誤報告處理方式
│ ├─PHP教程 10.1.3 設置錯誤日誌
│ ├─PHP教程 10.2.1 PHP異常處理1
│ ├─PHP教程 10.2.2 PHP異常處理2
│ ├─PHP教程 10.2.3 自定義異常類
│ └─PHP教程 10.2.4 捕獲多個異常
├─PHP視頻教程 11 PHP日期時間
│ ├─PHP教程 11.1.1 PHP中應用日期和時間1
│ ├─PHP教程 11.1.2 PHP中應用日期和時間2
│ └─PHP教程 11.1.3 PHP日歷核心程序編寫
├─PHP視頻教程 12 PHP文件系統處理
│ ├─PHP教程 12.1.1 文件系統概述
│ ├─PHP教程 12.1.2 文件的屬性
│ ├─PHP教程 12.2.1 解析目錄路徑
│ ├─PHP教程 12.2.2 遍歷目錄
│ ├─PHP教程 12.2.3 統計目錄中的個數和大小
│ ├─PHP教程 12.2.4 建立與刪除目錄
│ ├─PHP教程 12.2.5 復制、移動目錄
│ ├─PHP教程 12.3.1 文件的一些基本操作函數
│ ├─PHP教程 12.3.2 文件的打開與關閉
│ ├─PHP教程 12.3.3 文件的內容操作
│ ├─PHP教程 12.3.4 簡單留言版
│ ├─PHP教程 12.3.5 文件的鎖定機制
│ ├─PHP教程 12.4.1 文件上傳的設置
│ ├─PHP教程 12.4.2 文件上傳的處理
│ ├─PHP教程 12.4.3 處理多個文件上傳
│ ├─PHP教程 12.4.4 文件上傳類
│ └─PHP教程 12.4.5 文件下載
─PHP視頻教程 13 GD庫
│ ├─PHP教程 13.1.1 PHP中GD庫的使用
│ ├─PHP教程 13.1.2 使用GD庫畫圖
│ ├─PHP教程 13.1.3 繪制各種圖形
│ ├─PHP教程 13.1.4 畫時鍾
│ ├─PHP教程 13.2.1 設計驗證碼類
│ ├─PHP教程 13.2.2 驗證碼類的編寫1
│ ├─PHP教程 13.2.3 驗證碼類的編寫2
│ ├─PHP教程 13.2.4 驗證碼類完善
│ ├─PHP教程 13.3.1 圖片背景管理
│ ├─PHP教程 13.3.2 圖片的縮放和剪切
│ ├─PHP教程 13.3.3 添加圖片水印
│ ├─PHP教程 13.3.4 圖片的旋轉和翻轉
│ └─PHP教程 13.3.5 圖像處理類
├─PHP視頻教程 14 資料庫
│ ├─PHP教程 14.1.1 復習資料庫
│ ├─PHP教程 14.1.2 phpMyAdmin的使用
│ ├─PHP教程 14.1.3 php訪問MySQL
│ ├─PHP教程 14.1.4 在PHP腳本中操作MySQL資料庫1
│ ├─PHP教程 14.1.5 在PHP腳本中操作MySQL資料庫2
│ ├─PHP教程 14.1.6 在PHP腳本中操作MySQL資料庫3
│ ├─PHP教程 14.1.7 在PHP腳本中操作MySQL資料庫4
│ ├─PHP教程 14.2.1 分頁需求分析
│ ├─PHP教程 14.2.2 分頁類中分頁的編寫
│ ├─PHP教程 14.2.3 分頁類中列表頁的編寫
│ ├─PHP教程 14.2.4 分頁類的優化
│ ├─PHP教程 14.2.5 《細說PHP》分頁類的使用
│ ├─PHP教程 14.3.1 圖書管理需求分析
│ ├─PHP教程 14.3.2 添加圖書
│ ├─PHP教程 14.3.3 圖書列表
│ ├─PHP教程 14.3.4 修改圖書
│ ├─PHP教程 14.3.5 刪除圖書
│ ├─PHP教程 14.3.6 上傳圖書封面
│ ├─PHP教程 14.3.7 修改圖書封面
│ ├─PHP教程 14.3.8 圖書列表分頁
│ └─PHP教程 14.3.9 多搜索加分頁
├─PHP視頻教程 15 PDO
│ ├─PHP教程 15.1.1 資料庫抽象層PDO
│ ├─PHP教程 15.1.2 創建PDO對象
│ ├─PHP教程 15.1.3 PDO與連接有關的選項
│ ├─PHP教程 15.1.4 PDO的錯誤處理模式
│ ├─PHP教程 15.1.5 使用PDO執行SQL語句
│ ├─PHP教程 15.1.6 PDO事務處理
│ ├─PHP教程 15.2.1 PDO對預處理語句的支持
│ ├─PHP教程 15.2.2 使用PDO准備語句並執行語句1
│ ├─PHP教程 15.2.3 使用PDO准備語句並執行語句2
│ ├─PHP教程 15.2.4 PDO的預處理查詢1
│ ├─PHP教程 15.2.5 PDO的預處理查詢2
│ └─PHP教程 15.2.6 用PDO存取大數據對象
├─PHP視頻教程 16 memcache管理與應用
│ ├─PHP教程 16.1.1 memcache應用說明
│ ├─PHP教程 16.1.2 memcache工作原理
│ ├─PHP教程 16.1.3 memcache的安裝
│ ├─PHP教程 16.1.4 Memcache的常用命令操作
│ ├─PHP教程 16.1.5 php的memcache功能擴展模塊安裝
│ ├─PHP教程 16.1.6 PHP中操作memcache
│ ├─PHP教程 16.1.7 在PHP中設置分布式memcache存取1
│ └─PHP教程 16.1.8 在PHP中設置分布式memcache存取2
─PHP視頻教程 17 PHP會話控制
├─PHP教程 17.1.1 http協議和web本質1
├─PHP教程 17.1.2 http協議和web本質2
├─PHP教程 17.1.3 http協議和web本質3
├─PHP教程 17.2.1 會話控制概述
├─PHP教程 17.3.1 會話控制之Cookie概述
├─PHP教程 17.3.2 Cookie的操作
├─PHP教程 17.3.3 Cookie的應用1
├─PHP教程 17.3.4 Cookie的應用2
├─PHP教程 17.4.1 會話控制session的工作機制
├─PHP教程 17.4.2 session的應用
├─PHP教程 17.4.3 session的配置選項
├─PHP教程 17.4.4 sessoion自動垃圾回收機制
├─PHP教程 17.4.5 基於url傳遞session的id
├─PHP教程 17.4.6 郵件系統實例1
├─PHP教程 17.4.7 郵件系統實例2
├─PHP教程 17.5.1 自定義session的存儲機制
├─PHP教程 17.5.2 如何自定義session的處理方式1
├─PHP教程 17.5.3 如何自定義session的處理方式2
├─PHP教程 17.5.4 自定義session類
├─PHP教程 17.5.5 使用資料庫來存儲session信息1
├─PHP教程 17.5.6 使用資料庫來存儲session信息2
├─PHP教程 17.5.7 使用資料庫來存儲session信息3
└─PHP教程 17.5.8 使用memcache來存儲session
PHP視頻教程 18 PHP的模板引擎Smarty
├─PHP教程 18.1.1 什麼是模板引擎
├─PHP教程 18.2.1 自定義模板引擎類1
├─PHP教程 18.2.2 自定義模板引擎類2
├─PHP教程 18.2.3 使用自定義的模板引擎
├─PHP教程 18.3.1 選擇Smarty模板引擎
├─PHP教程 18.3.2 Smarty的安裝初使化示例1
├─PHP教程 18.3.3 Smarty的安裝初使化示例2
├─PHP教程 18.3.4 需要學習Smarty的哪兒些內容
├─PHP教程 18.4.1 模板中的變數應用
├─PHP教程 18.4.2 從配置文件讀取變數
├─PHP教程 18.4.3 在模板中使用保留變數
├─PHP教程 18.5.1 變數調節(修改)器
├─PHP教程 18.5.2 變數調節(修改)器和應用
├─PHP教程 18.5.3 使用registerPlugin來注冊變數調節器
├─PHP教程 18.5.4 使用插件來注冊變數調節器
├─PHP教程 18.5.5 smarty中的函數
├─PHP教程 18.5.6 smarty中的內置函數
├─PHP教程 18.6.1 smarty中自定義函數
├─PHP教程 18.6.2 smarty中自定義函數插件實例
├─PHP教程 18.7.1 smarty中內置函數的使用
├─PHP教程 18.7.2 smarty變數聲明
├─PHP教程 18.7.3 smarty流程式控制制
├─PHP教程 18.7.4 smarty中for、while循環
├─PHP教程 18.7.5 smarty中{function}標簽
├─PHP教程 18.7.6 smarty2中的foreach
├─PHP教程 18.7.7 smarty3中的foreach
├─PHP教程 18.7.8 smarty中的section
├─PHP教程 18.8.1 smarty模板繼承
├─PHP教程 18.9.1 頁面靜態化加分頁原理
└─PHP教程 18.9.2 在smarty中控制緩存