当前位置:编程学习 > php >>

php 字符串函数

{php 字符串函数}
php操作字符串
在Web应用中,用户和系统的交互基本上是用文字来进行的,因此系统对文本信息,即字符串的处理非常重要。文本字符串操作内容很多,本节将一一介绍。

3.1.1  去除空格和其他特殊符号

有时,需要去掉字符串中的空格或者其他没有意义的符号。例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格、句号等字符,系统希望在存储之前把它们去掉,只剩下有意义的信息。为了完成类似于上述需求的问题,PHP4及以上版本提供了4个去除字符串易做图殊符号的函数。

     string trim(string str [, string charlist]):去除字符串str首尾处空格或其他特殊符号。

     string ltrim(string str [, string charlist]):去除字符串str首的空格或其他特殊符号。

     string rtrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号。

     string chop(string str [, string charlist]):功能同rtrim()。

以上函数的第1个参数str为待操作的字符串,第2个可选参数charlist指定想要去除的特殊符号,当缺省时默认值为去掉下列字符:空格(" ")、制表符(\t)、换行符(\n)、回车符(\r)、空值(\0)。还可以使用“..”通过第2个参数指定需要去除一个范围内的字符,例如“a..d”指去掉ASCII码值介于a和d之间的字符,即a、b、c、d。

下面以trim()为例说明上述函数的使用。

 1    <!--去除字符串中的特殊字符:trim.php-->

2    <?php

3        $init_str = ",山东省济南市经十路8号1. ";    //前后都包含一个空格

4        echo $init_str."#<br>";

5        $trimmed_str = trim($init_str);        //"山东省济南市经十路8号1."

6        echo $trimmed_str."#<br>";

7        $trimmed_str = trim($init_str,', .');//"山东省济南市经十路8号1"。注意,第2个参数包括3个字符。

8        echo $trimmed_str."#<br>";

9        $trimmed_str = trim($init_str,', .0..9');    //"山东省济南市经十路8号"。0..9说明要去掉所有的数字字符

10       echo $trimmed_str."#<br>";

11   ?>

第3行定义了一个字符串变量,在其首部有空格和逗号,其尾有句号和空格;

第5行使用不带第2个参数的trim()函数去掉了其中首尾处的空格符号;

第7行使用带有第2个参数的trim()函数去掉了其首尾处的第2个参数中所包含的字符,即去掉了首尾处的空格、逗号和句号。

第9行trim()中第2个参数中的“0..9”说明将要去掉位于0和9的ASC码范围内的所有字符。

ltrim()、rtrim()的使用同trim()类似,而chop()实际上是rtrim()的别名,其功能与rtrim()一样,不再赘述。

3.1.2  加入和去除反斜杠

在许多应用中,例如生成SQL语句时(SQL语句将在第二部分中介绍),需要在其中加入转义字符‘\’,手工构造起来相当麻烦。为了解决类似问题,PHP提供了自动在字符串中加入或去除转义字符的函数。

     string addcslashes(string str, string charlist):第1个参数str为待操作的原始字符串,第2个参数charlist说明需要在原始串的哪些字符前加上字符‘\’。

     string stripcslashes(string str):去掉字符串中的‘\’。

二者的使用参考下面代码。

1    <!--加入转义字符:addcslashes.php-->

2    <?php

3    $init_str = "select * from Books where name = 'PHP手册'";

4    echo $init_str."#<br>";

5    $new_str = addcslashes($init_str,"'");

6    echo $new_str."#<br>";

7    $init_str2 = stripcslashes($new_str);

8    echo $init_str2."#<br>";

9    ?>

代码在第5行在$init_str中的‘’’前加上了‘\’,又在第9行将其去掉。

3.1.3  生成HTML元素

HTML元素的书写非常麻烦,下面简单列出一些常用字符在HTML中的表示方式。

     '&':'&'

     双引号‘"’:'"'

     单引号‘'’:'''

     '<' :'<'

     '>' :'>'

此处,称'&'等为HTML元素,'&' 等为其显示字符串。例如,若想在页面上的显示 “<a href='test'>链接</a>”,HTML应写为“<a href='test'>Test</a>”,否则,将只在页面上显示一个链接信息。

PHP提供了下面的函数来自动转化HTML元素。

     string htmlspecialchars(string str [, int quote_style [, string charset]]):把一些常用的HTML元素转换为显示字符串。

     string htmlentities(string str [, int quote_style [, string charset]]):把所有的HTML元素转换为显示字符串。

     string html_entity_decode(string str [, int quote_style [, string charset]]):把显示字符串转化为HTML元素。

上面函数中,参数str表示原始字符串;可选参数quote_style确定是否转换双引号和单引号,取值范围为{ ENT_COMPAT , ENT_QUOTES ,  ENT_NOQUOTES},分别表示只转换双引号、全转换、全不转换,缺省时默认值为ENT_COMPAT;第3个参数charset指定了转换中所用的字符集。PHP4及以上版本所支持的字符集参考表3.1。

表3.1                                               PHP4及以上版本支持的字符集

字 符 集
 说  明
 
ISO-8859-1
 西欧字符集
 
ISO-8859-15
 西欧字符集扩展
 
UTF-8
 兼容ASCII的宽字节字符集
 
cp1252
 西欧字符集,Windows系统默认
 
BIG5
 繁体中文,用于中国台湾省
 
GB2312
 简体中文,用于中国大陆
 
BIG5-HKSCS
 繁体中文扩展,用于中国香港
 
Shift_JIS
 日文
 
EUCJP
 日文
 

下面的示例中,首先使用htmlentities()函数得到一个HTML语句的显示字符串,然后再用html_entity_decode()函数重新把显示字符串转回HTML元素。运行结果如图3.1所示。

1    <!--生成HTML元素:htmlspecialchars.php-->

2    <?php

3    $orig = "我正在<b><font color=red>学习!</font></b> ";

4    $a = htmlentities($orig,ENT_COMPAT,"GB2312");

5    $b = html_entity_decode($a);

6    echo $a; // I'll "walk" the <b>dog</b> now

7    echo $b; // I'll "walk" the <b>dog</b> now

8    ?>

图3.1  PHP生成HTML元素示例

注意
 函数html_entity_decode()只支持PHP4.0.3及以上版本。
 

除上面所提到的3个函数之外,用于HTML元素操作的函数还包括nl2br()、get_html_translation_table()等,功能与上述函数类似,本书不再一一详述。

3.1.4  分解字符串

分解字符串是指把一个字符串通过特殊的符号分解为许多子串。例如,时间字符串“2005-01-01 12:59:59”可以利用符号“-”、空格和“:”分解为年月日时分秒具体的值。PHP提供了下列函数完成类似功能:

     array split(string pa

补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,