尽管可以在质量控制和销售系统方面看到PHP的应用,而PHP的设计的主要目的仍然是一门网络开发语言,并且至今依然保留了他们共同的的特性。
在本章中,我们主要会介绍PHP在网络应用开发的优势,此外那些相关网络应用的知识也会出现在考试中。
献上目录:
本章涵了对于开发者来说在工作中最常用的知识点——操作字符串,还附带讲了下正则表达式,尽管它学起来比较复杂,但非常强大。记住:能力越大,责任越大——这个例子(Siemen注:本书开头第一段话),如果你能很好的掌控它,还不如不用。永远不要低估字符串函数与正则表达式的能力。
兼容Perl的正则表达式(缩写就是“PCRE”)提供了非常强悍的字符串匹配与替换的机制,在这点上它胜过我们之前所说的所有的方法。
正则表达式通常被认为是非常复杂的——有时却是很复杂。然而,正确的使用会让正则表达式相对简单且比较容易理解和使用。鉴于其复杂性,当然,运算密度也比我们之前提到的那些简单的查找替换函数要来的高。因此,你应该只在其合适的场合使用正则——比如用在采集功能或者需要非常繁琐的查找替换的情况下。
正则表达式是一个描述匹配规则的字符串。最简单的正则表达式就是匹配它本身;举例来说,Davey与只能匹配“Davey”这个字符串。事实上,正则表达式如果写成这么简单也就没有什么意义了直接使用strpos()反而来的效率高。
能让正则表达式发挥它强大的地方是当你也不知道会具体匹配到哪些字符串的时候。其中你可以指定元字符与数量限定,不是已知的表面的文本,而是一种特殊的描述方式。
本章中,我们将会出现在考试中的有关正则表达式的相关知识。需要更加全面的请查阅PHP手册或者买一本专门讲解正则表达式的书来学习(特别推荐,《Mastering Regular Expressions》,作者是 Jeffrey Friedl,由O’Reilly 发行出版)。
PHP提供了很多用来格式化输出的函数。其中一些使用来操作特殊类型数据的——比如,货币——同时其他一般方法可以用根据更加复杂的规则来格式化字符串。
格式化规则会根据地区的不同而变化。比如大多数讲英语的国家的数值表示都会每隔三位数插入一个逗号分隔,并且用点来分隔整数与小数。而很多欧洲的国家恰好相反:点被用来分隔千分位,而逗号被用来分隔小数。
PHP中,函数setlocale()用来设置本地化,需要传入两个参数:需要本地化的分类(与设定的常量)。比如,你想对货币进行本地化(后面会讲到)按照US地区标准进行格式化:
setlocale(LC_MONETARY, 'en_US');
01.归纳——律师、教师、领导者——福尔摩斯
02.分析思考——程序设计师、领导、重大决策
03.数字敏感
04.使用小型工具——钟表匠、艺术品、修理
05.观察力——科学研究、考古、天文
比较也许是最常用的字符串操作之一。有时PHP的动态类型机制也时常令人疯狂——尤其是因为字符串往往可以暗地里转换成等价的数值。考虑下面例子代码:
$string = '123aa';
if ($string == 123) {
// $string等于数值123
}
原本期望两个不同的操作数比较返回false。但是,PHP会在比较值钱吧$string转换为数值型也就是整数123,因此比较结果就是true。那么我们显然应该使用全等操作符===来执行比较,这样可以很好的规避动态类型带来的问题。
字符串有很多种定义方法。最常见的,我们会用单引号或者双引号括起来的。与其他语言不同的是,这两种方法有些不同之处:单引号说明它仅仅只是字符串,即见即所得。双引号则是混合字符串,允许转义序列(例如,插入特殊字符)与动态替换,提供了对字符串动态嵌入值而不需要其他操作符的能力。
转义序列有时被称为“控制字符”与采用一个反斜杠“\”后面跟随一个或更多字符的形式。或许换行\n是用的最多的转义序列。在下面的例子中,我们使用了十六进制与八进制的标记输出一个星号:
echo "\x2a"; echo "\052";