php是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用php建立一个真正交互的web站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些html(或者html编辑器)的基本知识和一些编程思想。
1.简介
php是能让你生成动态网页的工具之一。php网页文件被当作一般html网页文件来处理并且在编辑时你可以用编辑html的常规方法编写php。
php代表:超文本预处理器(php: hypertext preprocessor)。php是完全免费的,不用花钱,你可以从php官方站点(http://www.php.net)自由下载。php遵守gnu公共许可(gpl),在这一许可下诞生了许多流行的软件诸如linux和emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。php在大多数unix平台,gun/linux和微软windows平台上均可以运行。怎样在windows环境的pc机器或unix机器上安装php的资料可以在php官方站点上找到。安装过程很简单。
如果你的机器解决了2000问题,那么php也一样没有千年虫问题!
1.1 历史
三年前,rasmus lerdorf为了创建他的在线简历而创造了"个人主页工具"(personal home page tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
php虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作zend的新引擎,而php4就可以充分利用这个引擎。php4还处在beta测试阶段。andy gutmans和zeev suraki是zend的主要作者。可以去zend站点(http://www.zend.com)了解更多。
php的应用在个人性质的web工程中增长显著。根据netcraft在1999年10月的报告,有931122个域和321128个ip地址利用php技术。
1.2 php的先进之处
应用php有许多好处。当然已知的不利之处在于php由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到php4之前)。但是php的邮件列表很是有用而且除非你正在运行像yahoo!或者amazon.com这样的极受欢迎的站点,你不会感觉出php的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看php有那些优点:
- 学习过程
我个人更喜欢php的非常简单的学习过程。与java和perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的php编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。
php的语法与c,perl,asp或者jsp。对于那些对上述之一的语言较熟悉的人来说,php太简单了。相反的,如果你对php了解较多,那么你对于其他几种语言的学习都很简单了。
你只需要30分钟就可以将php的核心语言特点全部掌握,你可能已经非常了解html,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的web站点。由于php代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入php使得你的站点更加具有动态特性。
- 数据库连接
php可以编译成具有与许多数据库相连接的函数。php与mysql是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。phplib就是最常用的可以提供一般事务需要的一系列基库。
- 可扩展性
就像前面说的那样,php已经进入了一个高速发展的时期。对于一个非程序员来说为php扩展附加功能可能会比较难,但是对于一个php程序员来说并不困难。
- 面向对象编程
php提供了类和对象。基于web的编程工作非常需要面向对象编程能力。php支持构造器、提取类等。
- 可伸缩性
传统上网页的交互作用是通过cgi来实现的。cgi程序的伸缩性不很理想,因为它为每一个正在运行的cgi程序开一个独立进程。解决方法就是将经常用来编写cgi程序的语言的解释器编译进你的web服务器(比如mod_perl,jsp)。php就可以以这种方式安装,虽然很少有人愿意这样以cgi方式安装它。内嵌的php可以具有更高的可伸缩性。
- 更多特点
php的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用php连接包括oracle,ms-access,mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的php安装版本需要哪些功能。引用nissan的xterra的话来说就是php可以做到你想让它做到的一切而且无所不能!
1.3 竞争对手:asp,mod_perl,jsp
我当然不清楚asp/jsp能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被sun和microsoft的百万美金所影响),请顺便通知我。
据我所知,jsp基于java,因此java程序员可以轻松开始编码。asp只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是vbscript。
mod_perl与perl一样强大,只是更快一些。
新闻热点
疑难解答