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中控制缓存