《第四章字符串处理.ppt》由会员分享,可在线阅读,更多相关《第四章字符串处理.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PHP WEB开发技术 第四章第四章 字符串处理字符串处理 课题目标:学会利用PHP内置函数处理字符串;重难点:PHP中的特殊字符串应用 常见的字符串处理函数的使用课前回顾课前回顾一、掌握php流程控制。二、理解并掌握php函数。第一节第一节 在在PHP中的字符串中的字符串一、字符串中的应用 在字符串中用于区分哪是变量,我们可以在双引号的字符串中加入进行区分。二、字符串的索引二、字符串的索引 字符串是一个有序的字符集合,那么既然是有序的,我们就应该可以提取其中任意的字符,我们看下面实例:?php$my_string=“Doubled”;for($index=0;$index 我们用浏览器进行输
2、出:DDoouubblleedd从结果中,我们可以看到,循环体每运行一次,那么将输出的是字符串里的字符,并且该字符是从0开始,我们在字符串变量后用 括起,并给出相应的序号,便可以得到我们想要的字符。三、字符串连接符在PHP中有且仅有一个操作符,那就是字符串的连接符(.),它可以将两个字符串元素进行连接,然后依照连接的顺序,将两个字符串按照顺序组成一个新的字符串.四、串联字符串就像我们的算术运算符一样,PHP的字符串操作符的串联也有它简短形式(.=),它是下面这种结构:$my_string_var.=$new_addition;它等价于:$my_string_var=$my_string_var
3、.$new_addition;五、文档式字符串变量在我们使用单引号或双引号来定义一个字符串的语法中,PHP也有另一种方法去定义一个字符串,这个叫做文档式字符串变量。我们很容易地将多行字符串放进程序里,如下所示:$clerihew=End_of_QuoteSir Humphrey DavyAbominated gravy.He lived in the odiumof having discovered sodium.End_of_Quote;echo$clerihew;经过浏览器输出:Sir Humphrey DavyAbominated gravy.He lived in the odium
4、of having discovered sodium.第二节第二节 字符串处理函数字符串处理函数一、输出字符串一、输出字符串 有四中方法可以将输出传送到浏览器。echo结构可以一次输出多值,而print()仅仅输出一个值。函数printf()通过将值插入到一个模板里来建立一个格式化的字符串。函数print_r()对调试很有用,该函数在人们或多或少都能读懂的表单里输出数组、对象和其他字符串的内容。(一)(一)echoecho是一个语言结构:echo“Printy”;/没有括号echo(“Printy”);/两者都是合法的/通过用逗号分割可以指定输出多少个项:echo“First”,”Secon
5、d”,”Third”;(二)(二)print()函数print()传送一个值(它的参数)到浏览器。如果字符串成功显示则返回true,否则(例如,在页面输出的某时刻,用户按下了浏览器的停止按钮)返回false:浏览器若正常输出,则输出hello,world,否则输出youre not listening to me!。if(!print(“hello,world”)die(“youre not listening to me!”);(三)(三)printf()函数printf()将一个通过替换值建立的字符串输入到模板(格式字符串)中。它源自于c语言里的同名函数。printf()的第一个参数是格式
6、字符串。剩下的参数是将被替换进来的值。格式字符串里的字符%指出了一个替换。1、格式修饰符 模板里的每一个替换标记都由一个百分号(%)组成,后面可能跟有下面列出的修饰符,并以类型说明符结尾(用%在输出中得到单个百分号字符)。2、类型说明符类型说明符告诉printf()什么类型的数据将被替换。这决定了对前面列出的修饰符的结实。一共有八种类型,我们用下表来列出:说明符意 义b参数是一个整数并显示为一个二进制数c参数是一个整数并显示为对应于该值的字符d参数是一个整数并显示为一个十进制数e或f参数是一个双精度数并且显示为一个浮点数g参数是一个有精度双精度数并且显示为一个浮点数o参数是一个整数并显示为一个
7、八进制(以8为基数的)数s参数是一个字符串并且显示为字符串u参数是一个无符号整数并且显示为一个十进制数x参数是一个整数并且显示为一个十六进制(以16为基数)数,用小写字母X参数是一个整数并且显示为一个十六进制(以16为基数)数,用大写字母printf类型说明符一个浮点数转换成只有两位小数的数:printf(%.2f,27.452);输出:27.45格式化一个日期:printf(%02d/%02d%04d,$month,$day,$year);输出:02/15/2002二、访问单个字符二、访问单个字符函数strlen()返回一个字符串里的字符数:$string=Hollo,world;$leng
8、th=strlen($string);/$length为12三、整理字符串三、整理字符串1、删除空白符、删除空白符可以用trim()、ltrim()、rtrim()函数删除字符串刊头或结尾的空白:$trimmed=trim(string,charlist);$trimmed=ltrim(string,charlist);$trimmed=rtrim(string,charlist);trim()返回一个删除了开头和结尾空格的字符串的拷贝ltrim()(l表示left)完成同样的工作,但是仅删除该字符串左边的空白符rtrim()(r表示right)仅删除字符串右边的空白符。2、改变大小写、改变大
9、小写 PHP有一些函数用于改变字符串大小写:strtolower()和strtoupper()对整个字符串进行操作,ucfirst()仅操作字符串的第一个字母,ucwords()操作字符串里每一个单词的首字母。每一个函数带有一个被操作的字符串作为参数并返回一个字符串的一个拷贝,该拷贝已经进行了适当的改变。例如:$string1=“FRED flintstone”;$string2=“barney rubble”;print(strtolower($string1);print(strtoupper($string1);print(ucfirst($string2);print(ucwords(
10、$string2);依次输出结果为:fred flintstoneFRED FLINTSTONEBarney rubbleBarney Rubble四、编码和转义四、编码和转义因为PHP最经常与HTML页面、WEB地址(URL)及数据库交互。所以有一些函数来帮助你处理那些数据类型。虽然HTML,WEB页地址和数据库命令都是字符串,但是它们每一个都要求不同的字符用不同的方法进行转义,例如,在WEB地址里的一个空格必须写成%20,而在HTML文档里的一个直接量小于号()必须写成<,PHP有许多内置函数来转换这些编码。(一)(一)HTMLHTML中的特殊字符通过如&和<这样的实体
11、(entity)来表示。有两个函数用于将字符串中的特殊字符转换成他们的实体,其中一个用于删除HTML标签,另一个用于提取META标签。对所有的特殊字符进行实体引用htmlentities()函数用HTML实体等价物转换所有字符(空格符除外)。这些字符包括小于号()、&符号和着重字符。例如:$string=htmlentities(“Einstrende Neubauten”);echo$string;输出结果:Einst&rende Neubauten(二)只对(二)只对HTML语法字符进行实体引用语法字符进行实体引用htmlspecialchars()函数转换可能生成有效HTML的最小实体集
12、。下面的试题都被转换:与符号(&)被转换成&;双引号(“)被转换成";单引号()被转换成';小于号()被转换成>;如果一个应用程序用来显示用户在表单里输入的数据,则在显示或储存前必须要经过htmlspecialchars()处理那个数据,如果你没有这样做,并且用户输入了像”angle 30”或”sturm&drang”这样的字符串,浏览器将认为这些特殊字符是HTML,从而得到一个混乱的页面。五、字符串比较五、字符串比较PHP有两个操作符和六个函数用于字符串间的相互比较。精确比较可以用=和=操作符来比较两个字符串是否相等。这两个操作符不同之处在于如何处理非字符串操作数。
13、=操作符将非字符串操作数转换成字符串,所以它报告3和“3“是相等的。=操作符不进行转换,并且如果参数的类型不同则返回false。比较操作符(,和=)也用于字符串:$him=“Fred”;$her=“Wilma”;if($him$her)print“$him comes before$her in the alphabet.n”;在浏览器中输出:Fred comes before Wilma in the alphabet.六、字符串查找和处理六、字符串查找和处理PHP有很多函数用于操作字符串。用于查找和修改字符串的最常用的函数,是那些用正则表达式来描述字符串的函数。这一节中描述的函数不使用正则
14、表达式,他们比正则表达式更快,但是他们仅在寻找固定的字符串时有用(例如,寻找”12/11/01”,而不是”用斜杠分隔的任意数字”)。(一)子串(一)子串如果知道感兴趣的数据在一个较大的字符串中的位置,那么可以使用substr()将它复制出来:格式:$piece=substr(string,start,length);参数start是在string中开始复制的位置,0的意思是从字符串的开头开始复制。参数length是复制的字符数(默认为一直复制到字符串的结尾)。例如:$name=“Fred Flintstone”;$fluff=substr($name,6,4);/$fluff 是“lint”$
15、sound=substr($name,11);/$sound 是“tone”(二)分解字符串(二)分解字符串PHP提供了秒度 一些函数来将字符串分解成更小的成分。按照复杂性依次增加的顺序排列,它们是explode()、strtok()、sscanf()。(三)分解和拼装(三)分解和拼装数据经常以字符串的形式到达,他们必须被分解成一组值。例如,你可能想从一个像“Fred,25,Wilma”这样的字符串中分离出用逗号分隔的字段。在这种情况下应使用explode()函数:格式:$array=explode(separator,string,limit);第一个参数separator是一个包含字段分隔
16、符的字符串。第二个参数string是要拆分的字符串。可选的第三个参数limit是返回数组中值的最大数目。如果达到了限制,那么数组的最后一个元素包含该字符串剩余的部分:$input=“Fred,25,Wilma”;$fields=explode(,$input);/$fields为array(Fred,25,Wilma)$fields=explode(,$input,2);/$fields为array(Fred,25)总结你是不是很惊奇呢?在php 里的语法和JS如此相近又如此的强大又简单?这里只展示了一部分函数。在php函数手册里,你是不是看到了更多更想马上用的函数呢?不要急,我们继续学习。在下一章,我们再来讲述代码的重用的中级技术。作业1.请学员用将本章节的实例进行有效的检查。2.简要说明字符串使用单引号和使用双引号的区别