1 / 38

第 7 章 字符串

第 7 章 字符串. 字符串在 PHP 中的应用很广泛,在数据存储、传输、文件读写等很多方面,都能使用到字符串函数。与字符串有关的函数很多,本章主要介绍与字符串相关的函数的使用。. 7.1 字符串显示函数. 在本书 2.1 节中,就对字符串显示函数进行了介绍。虽然显示字符串函数很简单,但是其在程序运行过程中,要注意的问题很多。本节将重新回顾这些函数,并介绍更多的显示函数,也将介绍如何将字符串输出到缓冲区。. 7.1.1 输出字符串到屏幕. echo() 与 print() 函数已经介绍过其使用方法。下面通过代码,来介绍其他显示字符串的函数,代码如清单所示。.

Download Presentation

第 7 章 字符串

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 字符串 • 字符串在PHP中的应用很广泛,在数据存储、传输、文件读写等很多方面,都能使用到字符串函数。与字符串有关的函数很多,本章主要介绍与字符串相关的函数的使用。

  2. 7.1 字符串显示函数 • 在本书2.1节中,就对字符串显示函数进行了介绍。虽然显示字符串函数很简单,但是其在程序运行过程中,要注意的问题很多。本节将重新回顾这些函数,并介绍更多的显示函数,也将介绍如何将字符串输出到缓冲区。

  3. 7.1.1 输出字符串到屏幕 • echo()与print()函数已经介绍过其使用方法。下面通过代码,来介绍其他显示字符串的函数,代码如清单所示。

  4. 7.1.2 字符串与文件 • 使用fprintf()函数,可以把给定的字符串,格式化后输出到一个句柄中。下面演示fprintf()函数的使用方法,代码如清单所示。 • 清单 fprintf()函数的使用 • <?php • //建立一个句柄 • $fp = fopen('temp.txt','w'); • $money = 12345678.9; • //使用fprintf()函数格式化要输出的字符串,并写入文件 • $lenght = fprintf($fp, '%01.2f', $money); • //显示fprintf()函数返回的字符串长度 • echo $lenght; • ?>

  5. 7.2 字符串与数组 • 在本书第2章语法部分,介绍了字符串操作符的使用方法。使用字符串操作符,可以把1个或多个字符串,连接为1个长字符中。本节介绍的函数,主要用于分割和连接字符串。

  6. 7.2.1 将字符串分割成小块 • 使用str_split()函数可以把指定的字符串,按指定的长度分割,并返回一个数组,数组的单元就是分割后字符串。下面演示str_split()函数的使用方法,代码如清单7.3所示。 • 清单 str_split()函数的使用方法 • <?php • $enString="string"; • $cnString = "这是测试用字符串"; • echo "<b>使用默认长度分割字符串</b>"; • echo "<pre>"; • print_r(str_split($enString)); • echo "</pre>"; • echo "<b>使用指定长度分割字符串</b>"; • echo "<pre>"; • print_r(str_split($enString,4)); • echo "</pre>"; • ?>

  7. 7.2.2 在字符串中插入字符串 • 使用chunk_split()函数,可以根据参数指定的长度,把字符串分为若干段,在每段字符串后附上指定字符串后,重新连接为一个字符串,并返回。下面演示chunk_split()函数的使用方法,代码如清单所示。 • 清单 chunk_split()函数的使用方法 • <?php • $String = "这是测试用字符串"; • echo "<b>在字符串的指定长度后,添加默认字符串</b>"; • echo "<pre>"; • echo chunk_split($String,4); • echo "</pre>"; • echo "<b>在字符串的指定长度后,使用'-'分割符</b>"; • echo "<pre>"; • echo chunk_split($String,4,"-"); • echo "</pre>"; • ?>

  8. 7.2.3 字符串转化为数组 • 使用explode()函数,可以按指定的字符,分割另一个字符串,并返回一个数组。下面演示explode()函数的使用方法,代码如清单所示。 • 清单 explode()函数的使用方法 • <?php • $String = "使用空格 作为分割 字符串 的例子"; • $LString = "使用竖线|作为|分割字符串|的例子"; • echo "<b>使用空格来分割字符串</b>"; • echo "<pre>"; • print_r(explode(" ",$String)); • echo "</pre>"; • echo "<b>使用竖线来分割字符串</b>"; • echo "<pre>"; • print_r(explode("|",$LString)); • echo "</pre>"; • echo "<b>使用竖线来分割字符串,并指定返回的数组数</b>"; • echo "<pre>"; • print_r(explode("|",$LString,2)); • echo "</pre>"; • ?>

  9. 7.2.4 数组转化为字符串 • 使用implode()函数,可以使用指定的字符串,把一个数组连接为一个字符串。下面演示implode()函数的使用方法,代码如清单所示。 • 清单 implode()函数的使用方法 • <?php • //定义一个数组 • $array = array("我的","故乡","在","远方"); • //没有指定字符串的情况下连接数组 • $string = implode("",$array); • //显示连接后的数组 • echo $string; • echo "<br>"; • //使用|作为连接字符串 • $string = implode("|",$array); • //显示连接后的数组 • echo $string; • ?>

  10. 7.3 字符串与空格 • 在实际应用中,字符串经常读取,以及其他函数的操作,往往会产生一些多余的空格。这些多余的字符串,参与运算时,会产生错误的结果,而使用相关的字符串函数,可以很简单的解决这个问题。

  11. 7.3.1 去掉字符串左边的字符 • 使用ltrim()函数,可以去掉指定字符串中右边的指定字符,并返回去掉指字符后的字符串。下面演示ltrim()函数的使用方法,代码如清单所示。

  12. 7.3.2 去掉字符串右边的字符 • 使用rtrim()函数,可以去掉指定字符串中右边的指定字符,并返回去掉指字符后的字符串。下面演示rtrim()函数的使用方法,代码如清单所示。

  13. 7.3.3 去掉字符串两边的字符 • 使用trim()函数,可以去掉指定字符串中左右两边的指定字符,并返回去掉指字符后的字符串。下面演示trim()函数的使用方法,代码如清单所示。

  14. 7.4 字符串的比较 • 字符串的比较,主要集中在对类型,以及大小写的比较上。在实际应用中,在遇到同一个英文单词,如果其大小写不同,会使用运算结果出错的话,就可以先对字符串进行比较,再根据情况进行下一步的操作。

  15. 7.4.1 字符串比较 • 在表达式中,可以使用:==、!=、===、!==来进行字符串比较,下面演示比较字符串的方法,代码如清单所示。

  16. 7.4.2 使用函数比较字符串 • 使用strcasecmp()函数用于两个字符串进行比较大小。而strcmp()函数用于区分大小写的字符串的比较大小。下面演示strcmp()与strcasecmp()函数的使用方法,代码如清单所示。

  17. 7.5 字符串的替换与插入 • 本节主要介绍用于替换字符串的函数。替换字符串,即使用指定的字符串,替换掉原来字符串中的相关字符,以组成新的字符串来参与运算。现在流行网站使用的模板系统,都是使用字符替换作为基础的。

  18. 7.5.1 替换当前字符串中的字符 • 使用str_replace()函数,可以替换掉字符串中的相关字符,而产生一个新字符串。下面演示str_replace ()函数的使用方法,代码如清单所示。

  19. 7.5.2 在指定位置插入字符串 • 使用substr_replace()函数,可以在指定位置插入字符串,并返回一个新字符串。下面演示substr_replace ()函数的使用方法,代码如清单所示。

  20. 7.5.3 字符串替换函数与模板 • 根据str_replace()函数替换字符串的原理,可以实现简单的模板系统。下面演示简单模板系统的使用,代码如清单所示。

  21. 7.6 字符串与HTML • 在操作或读取HTML文件时,经常会遇到一些特殊的字符串,这些特殊的字符串,都是由HTML标签转换而成了。在操作带有HTML标签的字符串或文件时,可以使用相关函数来得到需要的结果。

  22. 7.6.1 把字符转化为HTML实体形式 • 使用htmlspecialchars()函数,可以把HTML文件中,类似&、'、"、<、>的字符,转换为HTML的实体形式。而使用htmlentities()函数据,可以把所有能转化为HTML实体的字符,都转换为HTML实体形式。下面演示htmlspecialchars()与htmlentities()函数的使用方法,代码如清单所示。

  23. 7.6.2 把HTML实体转化为特殊字符 • 使用htmlspecialchars_decode ()函数,可以把HTML的实体形式,转换为HTML格式。而使用html_entity_decode ()函数可以把所有转换为HTML实体的字符,转换为HTML格式。下面将演示这两个函数的使用方法,代码如清单所示。

  24. 7.6.3 换行符的转换 • 在HTML文件中使用“\n”,显示HTML代码后,并不能显示换行的效果。这时可以使用nl2br()函数,来把字符串的“\n” 替换为“<br />”。。下面将演示nl2br()函数的使用方法,代码如清单所示。

  25. 7.7 字符串与加密 • 字符串的加密与解密,在很多方面都有应用,例如对URL字符串的编码与解码。以及在涉及到一些敏感的字符串操作时,如用户名和密码时,也需要对这些字符串进行加密操作,来提高系统的安全性。 • 本节介绍函数中,只有与MD5相关的函数是字符串函数,其他函数应该属于URL函数。但是这些URL函数,同样可以使用于字符串操作,因些把这些函数统一进行介绍。

  26. 7.7.1 使用MIME base64编码加密和解密数据 • MIME base64是一种编码手段,而不是加密手段。字符串按照base64编码后,可以使二进制数据通过非纯8-bit的传输层传输,例如电子邮件的主体。 • 本小节主要是利用base64的编码与解码函数,来实现类似的字符串加密、解密操作。base64_encode()函数,可以对指定的字符串进行编码,并返回一个编码的字符串。base64_decode()函数,可以把一个使用base64_encode()函数编码的字符串,进行解码处理,并返回一个解码的字符串。下面演示这两个函数的使用方法,代码如清单所示。

  27. 7.7.2 编码和解码URL • 使用urlencode()函数,可以把字符串中除“-”、“_”符号与字母以外的字符,转换为“%16进制数”的形式,而空格将转换为“+”符号。而使用urldecode()函数据,可以还原使用urlencode()函数编码的字符串。 • urlencode()与urldecode()函数是URL处理函数,但是也可以用于对字符串过行编码,以方便在网络上进行传输。下面演示这两个函数的使用方法,代码如清单所示。

  28. 7.7.3 字符串与MD5 • MD5是一种加密方法,其可以把指定的字符串,转换为一个唯一的字符串,并且这个过程是不可逆的。使用md5()函数,可以返回一个字符串的MD5值,而使用md5_file()函数,则可以计算一个文件的MD5值。下面演示这两个函数的使用方法,代码如清单所示。

  29. 7.8 其他字符串函数 • 在前边的小节中,介绍了主要的字符串函数后,本小节将向读者介绍一些简单的字符串函数,虽然这些函数使用比较简单,但是在实际应用中,也经常被使用到。

  30. 7.8.1 计算字符串长度 • 使用strlen()函数,可以计算指定字符串的长度。这个函数经常被使用到,下面介绍其使用方法,代码如清单所示。 • strlen()函数的使用方法 • <?php • //定义一个字符串 • $string = "包括 空格的字符串"; • //使用strlen()函数计算字符串长度 • echo strlen($string); //输出17 • ?> • 注意:strlen()函数运行后,如果成功将返回要计算字符串的长度,否则返回0。

  31. 7.8.2 二进制数据转换成十六进制 • 使用bin2hex()函数,可以把指定的二进制数,转换为对应的十六进制数。下面介绍bin2hex()函数的使用方法,代码如清单所示。 • bin2hex()函数的使用方法 • <?php • //定义一个二进制数 • $bin = 0100110; • //使用bin2hex()函数把其转换为十六进制数 • $hex = bin2hex($bin); • //显示返回的值 • var_dump($hex); //输出:string(10) "3332383430" • ?> • 注意:bin2hex()函数运行后,将返回一个字符串。

  32. 7.8.3 ASCII码与字符串 • 在字符串操作中,可以使用ord()函数,返回字符的ASCII码,也可以使用chr()函数,返回ASCII码对应的字符。下面介绍这两个函数的使用方法,代码如清单所示。 • 清单 ord()与chr()函数的使用方法 • <?php • echo ord("a");//输出:97 • echo chr(98);//输出:b • ?> • ord()函数只有一个必选参数,其值是一个字符,ord()函数运行后,将返回这个字符的ASCII码。chr()函数只有一个必选参数,其值是一个ASCII码,chr()函数运行后,将返回这个ASCII码对应的字符。

  33. 7.8.4 HTML的标签控制 • 使用strip_tags()函数,可以过滤掉字符串中的HTML标签,并返回这个字符串。下面演示strip_tags()函数的使用方法,代码如清单所示。 • 清单 strip_tags()函数的使用方法 • <?php • //定义一个带有HTML及PHP标签的字符串 • $html = " • <div><font>HTML内容</font></div> • "; • //使用strip_tags()函数去除字符串中的标签 • $string = strip_tags($html); • //显示返回的字符串 • echo $string;//输出:HTML内容 • //使用strip_tags()函数去除指定的HTML标签 • $string = strip_tags($html,"<font></font>"); • //显示返回的字符串 • echo $string; //输出:<font>HTML内容</font> • ?>

  34. 7.8.5 解析URL • parse_url()并不是字符串函数,其主要使用是用于解析一个URL,并返回一个包括相关内容的数组。下面演示parse_url()函数的使用方法,代码如清单所示。

  35. 7.8.6 字母大小写的转换 • 在处理英文单词时,会遇到大小写不统一的问题,而且有些字符串处理函数,对于字母的大小写是敏感的。要比较两个大小写不同的单词是否想等,可以把要比较的单词,都转成小写或大写字母来实现。在PHP中转化字母为大写的函数是strtoupper(),把字母转换为小写的函数是strtolower(),下面介绍这两个函数的使用方法,代码如清单所示。

  36. 7.9 常见问题 • 本章主要介绍了与字符串相关的函数。在脚本运行时,很多地方都涉及到字符串的操作,本节主要介绍的是,字符串操作过程中出现的问题。

  37. 7.9.1 关于模板应用的问题 • 前面介绍了一般模板的原理,并演示了一个简单的模板系统。虽然这个模板实现的效果比较简单,但是经过进一步丰富的话,其也可以满足大部分程序的模板化需要。 • 关于模板文件,清单7.14的代码中的模板是以字符串的形式存在的。在实际应用中,可以把模板内容保存为一个文件,在要使用此模板时,可以使用文件系统函数读取这个文件,并替换其中的字符即可。 • 关于模板输出时,可以使用字符串输出函数,直接输出已经替换好的模板字符串,也可以把这个字符串写入一个文件,从而形成静态页面,方便浏览。

  38. 7.9.2 关于HTML编码的问题 • 在处理表单提交的变量时,为了防止用户提交HTML代码,可以使用strip_tags()函数,去掉指定变量中的HTML代码。 • 在有些情况下,脚本本身希望用户提交带有HTML编码的数据,而且需要把这些数据存储,供以后使用。带有HTML代码的数据,可以真接保存到文件中,但是大部分情况下,是把用户提交的数据保存到数据库中,由于数据库编码等原因,真接向数据库中存储带有HTML代码的数据,会产生错误。这时可以使用htmlspecialchars()函数,把HTML代码进行转化,再进行存储。 • 使用htmlspecialchars()函数转换过的HTML代码,可以直接保存到数据库中,在使用时可以直接向浏览器输出,这时在浏览器中看到的内容,是HTML的实体形式,也可以使用htmlspecialchars_decode()函数,把从数据库中取出的代码进行解码,再输出到浏览器中,这时看到的是按HTML格式显示的内容。

More Related