• 面向对象技术也许是PHP5中最终也是最具深远影响力的特性。这不是对之前版本的垄断,而是增强了PHP4的OOP特性,使得PHP5成为非常实用的面向对象语言——还有,让你的生活更加美好。

    [ 阅读全文 ] 2010-04-22 11:18:28
  • 如果非要解释为什么PHP会成为世界上最流行的WEB开发语言,本章内容就很好的阐述了这个问题。它拥有众多惊人特性与很多扩展协同工作,比如Web Services,在易用性比其他平台更胜一筹——而创建一个多层次交互的网络应用,只需要如此少的付出成本使得创建一个动态网站变得非常容易和轻松。

    作者提示:请记住那些我们在章节中提到的很多安全问题请阅读安全章节了解细节。

    这些知识对于PHP开发非常有用,因此考试也会经常涉及,甚至是从不同观点出发。你应该记住以备考试时用到。

    [ 阅读全文 ] 2010-04-22 10:56:24
  • 正如我们在第一章节中提到的,服务器对于HTTP请求首先发送一组响应头信息,这组头信息包含了很多有关数据,以及其他细节。他们以简单的字符串形式key: value,使用换行分隔。

    尽管PHP与WEB服务器会自动发送预处理这些头信息,有时候会有重写或发送一个新的头信息的需求。

    这非常容易办到——你需要做的就是调用header()函数并提供对应格式的头信息。唯一需要注意的是(事实上我们仅仅需要发送一个有效的头信息)在调用header()之前不要有任何的输出,在PHP标签外的空格或者空行,包括所有的HTML与PHP的输出。如果头信息没有遵循了这些规则,那么这两件事情会发生:头信息没有任何作用,还有PHP可能会输出一个错误。

    作者提示:如果输出缓存是打开的状态,有可能会把头信息随着一些数据的输出而被带出来。如此一来,代码被放在随时可以打开或者关闭的透明状态,是非常糟糕的。

    [ 阅读全文 ] 2010-04-21 23:18:08
  • 大多数情况下,脚本中会配合两种HTTP请求方式的其中一种:GET和POST。从技术的角度上来说,这两种方式主要的区别就是后者可以作为数据的载体,而前者只能把数据作为query放在url中传送。

    当然,这并不是说表单就一定不能用GET方式递交——只是用这种方式时在数据的长度与数据的类型上有局限。例如,使用POST方式可以用来上传一个文件,而大多数浏览器都会对query的长度作出限制。

    作者提示:与流行的说法正好相反,使用POST递交数据并不会比使用GET来的更加安全。这点我们会在安全这一章来讲述。

    [ 阅读全文 ] 2010-04-18 07:05:00
  • 多数人认为,网页无非就是一堆HTML代码。这个认识对于网页设计师就已经足够了——但是,对于一个PHP开发者,如果你希望完全的掌控网站,那么还需要更深入的学习。

    从服务器的角度来说,通常一个文档是由客户端对一个资源的访问而发出的HTTP请求开始的。客户端同时也可以在请求信息中搭载数据——例如,递交一个表单的时候,请求信息中就会搭载表单中的数据,当上传文件时就搭载了文件数据。

    当服务器接收到来自客户端的请求后,服务器将数据解码并传入PHP解释器(在这里的前提是请求的目标是一个PHP脚本,当然也可以请求其他的具备操作这些请求的载体上,例如请求静态资源,如图片,效果就是立即显示出图片)。

    输出时,服务器会编写一组响应头信息传回客户端;他们包含了一些有利于客户端判别的信息——例如请求内容的类型,或者编码,此外这也有利于服务器与客户端之间的状态交换(我们会在稍后介绍)。

    [ 阅读全文 ] 2010-04-18 06:03:43
  • 尽管可以在质量控制和销售系统方面看到PHP的应用,而PHP的设计的主要目的仍然是一门网络开发语言,并且至今依然保留了他们共同的的特性。

    在本章中,我们主要会介绍PHP在网络应用开发的优势,此外那些相关网络应用的知识也会出现在考试中。

    献上目录:

    • 5.1 解剖网页
    • 5.2 表单与URLs
      • 5.2.1 GET与URLs
      • 5.2.2 使用POST
      • 5.2.3 不确定数据的来路
      • 5.2.4 管理上传文件
      • 5.2.5 GET或POST?
    • 5.3 HTTP头信息
      • 5.3.1 重定向
      • 5.3.2 压缩技术
      • 5.3.3 缓存技术
      • 5.3.4 COOKIE
    • 5.4 Session
    • 5.5 总结
    [ 阅读全文 ] 2010-04-18 05:35:49
  • 本章涵了对于开发者来说在工作中最常用的知识点——操作字符串,还附带讲了下正则表达式,尽管它学起来比较复杂,但非常强大。记住:能力越大,责任越大——这个例子(Siemen注:本书开头第一段话),如果你能很好的掌控它,还不如不用。永远不要低估字符串函数与正则表达式的能力。

    [ 阅读全文 ] 2010-04-17 01:26:26
  • 兼容Perl的正则表达式(缩写就是“PCRE”)提供了非常强悍的字符串匹配与替换的机制,在这点上它胜过我们之前所说的所有的方法。

    正则表达式通常被认为是非常复杂的——有时却是很复杂。然而,正确的使用会让正则表达式相对简单且比较容易理解和使用。鉴于其复杂性,当然,运算密度也比我们之前提到的那些简单的查找替换函数要来的高。因此,你应该只在其合适的场合使用正则——比如用在采集功能或者需要非常繁琐的查找替换的情况下。

    正则表达式是一个描述匹配规则的字符串。最简单的正则表达式就是匹配它本身;举例来说,Davey与只能匹配“Davey”这个字符串。事实上,正则表达式如果写成这么简单也就没有什么意义了直接使用strpos()反而来的效率高。

    能让正则表达式发挥它强大的地方是当你也不知道会具体匹配到哪些字符串的时候。其中你可以指定元字符与数量限定,不是已知的表面的文本,而是一种特殊的描述方式。

    本章中,我们将会出现在考试中的有关正则表达式的相关知识。需要更加全面的请查阅PHP手册或者买一本专门讲解正则表达式的书来学习(特别推荐,《Mastering Regular Expressions》,作者是 Jeffrey Friedl,由O’Reilly 发行出版)。

    [ 阅读全文 ] 2010-04-17 01:14:42
  • PHP提供了很多用来格式化输出的函数。其中一些使用来操作特殊类型数据的——比如,货币——同时其他一般方法可以用根据更加复杂的规则来格式化字符串。

    格式化规则会根据地区的不同而变化。比如大多数讲英语的国家的数值表示都会每隔三位数插入一个逗号分隔,并且用点来分隔整数与小数。而很多欧洲的国家恰好相反:点被用来分隔千分位,而逗号被用来分隔小数。

    PHP中,函数setlocale()用来设置本地化,需要传入两个参数:需要本地化的分类(与设定的常量)。比如,你想对货币进行本地化(后面会讲到)按照US地区标准进行格式化:

    setlocale(LC_MONETARY, 'en_US');
    [ 阅读全文 ] 2010-04-16 04:14:02