PHP字符串操作函数集
字符串的整理:chop(),ltrim()和trim()
整理字符串的第一步是清理字符串中多余的空格.
默认情况下,除去的字符是换行符和回车符(n和r),水平和垂直制表符(t和 x0B),字符串结束符(0)和
空格.除了这个默认的过滤字符列表外,还可以在该函数的第二个参数中提供要过滤的特殊字符.
这三个函数不同之处是:trim()将除去字符串前后的空格,而ltrim()只从字符串的开始处(左边)除去
空格.rtrim()是从字符穿的结束处除去空格.
格式化字符串以便显示
1,使用HTML格式化:nl2br()函数
nl2br()函数将字符串作为输入参数,用XHTML中的
标记代替字符串中的换行符.
2,为打印输出而格式化字符串
PHP也支持print()结构,他实现的功能与echo相同.
printf()函数是将一个格式化的字符串输出到浏览器中,而sprintf()函数是返回一个格式化了的字符
串.
见下面:
printf (”total amount of order is %s.”,$total);
格式化字符串中的%s是转换说明.它的意思是”用一个字符串来代替”.
如果想打印一个”%”符号,必须使用”%%”.
再看一个例子:
printf(”total amount of order is %.2f(with shipping %.2f)”, $total, $total_shipping);
转换说明的类型码
b 解释为整数并作为二进制数输出.
c 解释为整数并作为字符输出.
d 解释为整数并作为小数输出.
f 解释为双精度并作为浮点数输出
o 解释为整数并作为八进制输出
s 解释为字符串并作为字符串输出
u 解释为整数并作为非指定小数输出
x 解释为整数并作为带有小写字母a-f的十六进制数输出
X 解释为整数并作为带有大写字母A-F的十六进制数输出
3,改变字符串中的字母大小写
strtoupper() 将字符串转换为大写
strtolower() 将字符串转换为小写
ucfirst() 如果字符串的第一个字符是字母,就将该字符转换为大写
ucwords() 将字符串每个单词的第一个字母转换为大写
格式化字符串以便存储:addslashes(), stripslashes()
存到数据库里的数据,有些可能会被解释成控制符号,这些有问题的字符就是:引号(单引和双引),反斜
杠()和NULL字符.
为了将这些字符进行转义处理,可以在他们前面加一个反斜杠.
存储数据时,先用addslashes()处理字符串,加上反斜杠.在显示用户数据之前,必须用stripslashes()
去掉引号特性.
PHP配置也可以自动启动魔术引号特性,这个功能是由magic_quotes_gpc指令控制的.
用字符串函数连接和分割字符串
使用函数explode(),implode()和join()
如:
$email_array=explode(’@',$email);
这里将顾客的电子邮件分割成两部分。并存放在$email_array[0]和$email_array[1].
然而,这个函数不能分割大写字母的字符串.所以处理之前应该先转换成小写的.
使用implode()和join()函数可以实现与explode(0相反的效果.这两个函数效果一样.
使用strtok()函数
与explode()每次都将一个字符串全部分割成若干小块不同,strtok()函数一次只从字符串中取出一些
片段(成为令牌).对于一次从字符串中取出一个单词的处理来说,strtok()效果更好.
使用substr()函数
函数substr()允许我们访问一个字符串给定起点和终点的字符串.
如:
$test=’your customer service is excellent’;
substr($test,1);
将返回:”our customer service is excellent”
substr($test,-9);
将返回:”excellent”
这个函数的第3个参数可以限制返回的字符大小:
substr($test, 5, -13);
将返回:”customer service”
字符串的比较
字符串的排序:strcmp() , strcasecmp() , 和 strnatcmp()
函数原型:
int strcmp(string str1, string str2);
该函数需要两个进行比较的参数字符串.如果这两个字符串相等,该函数返回0,如果按字典顺序str1在
str2后面(大于str2)就返回一个正数.否则返回一个负数. 这个函数是区分大小写的.
函数strcasecmp()除了不区分大小写之外,其他和strcmp()一样.
函数strnatcmp()以及与之对应的不区分大小写的strnatcasecmp()函数是按”自然排序”比较字符串
的.
所谓”自然排序”是按人们习惯的顺序,如:strcmp()会认为2大于12,因为按字典顺序2大于12.然
而,strnatcmp()则是相反.
使用strlen()函数测试字符串的长度
使用字符串函数匹配和替换子字符串
在字符串中查找字符串:strstr(), strchr() ,strrchr() ,和stristr().
如:
if (strstr($feedback,’shop’))
$toaddress=’shop@example.com’;
else if (strstr($feedback,’delivery’))
$toaddress=’delivery@example.com’;
函数strstr有两个变体, 一个是stristr(),区别在于他不区分大小写.地二个是strrchr(),他几乎和
strstr()一样,但是strstr是从第一个出现 needle的位置的前面返回字符串,而strrchr()是从最后一
个needle的位置返回.
查找子字符串的位置:strpos() ,strrpos()
如下面的代码,会在浏览器中显示数值4:
$test=’hello world’;
echo strpos($test,’o');
再如echo strpos($test,’o',5);
会返回7,因为第三个参数说明了在位置5开始搜索.
strrpos()也几乎是一样的,但是他返回的是从最后一次出项子字符串needle的位置.
替换子字符串:str_replace(), substr_replace()
最常用的是str_replace(),它的原型是:
mixed str_replace(mixed needle,mixed new_needle, mixed haystack [,int &count]));
这个函数用new_needle替换所有haystack中的needle,并且返回haystack替换后的结果.可选的第四个
参数是count,它包含要执行的替换操作次数.
例如过滤”感情色彩”单词的语句:
$feedback= str_replace($offcolor,’%!@’,$feedback);
substr_replace的原型:
string substr_replace(string string,string replacement,int start , int[length]);
这个函数使用字符串replacement替换字符串string中的一部分.具体是哪一部分则取决于起始位置和
可选参数lengeh的值.
$test=substr_replace($test,’x',-1);
这段代码会用’x'替换$test的最后一个字符.
字符串的整理:chop(),ltrim()和trim()
整理字符串的第一步是清理字符串中多余的空格.
默认情况下,除去的字符是换行符和回车符(n和r),水平和垂直制表符(t和 x0B),字符串结束符(0)和
空格.除了这个默认的过滤字符列表外,还可以在该函数的第二个参数中提供要过滤的特殊字符.
这三个函数不同之处是:trim()将除去字符串前后的空格,而ltrim()只从字符串的开始处(左边)除去
空格.rtrim()是从字符穿的结束处除去空格.
格式化字符串以便显示
1,使用HTML格式化:nl2br()函数
nl2br()函数将字符串作为输入参数,用XHTML中的
标记代替字符串中的换行符.
2,为打印输出而格式化字符串
PHP也支持print()结构,他实现的功能与echo相同.
printf()函数是将一个格式化的字符串输出到浏览器中,而sprintf()函数是返回一个格式化了的字符
串.
见下面:
printf (”total amount of order is %s.”,$total);
格式化字符串中的%s是转换说明.它的意思是”用一个字符串来代替”.
如果想打印一个”%”符号,必须使用”%%”.
再看一个例子:
printf(”total amount of order is %.2f(with shipping %.2f)”, $total, $total_shipping);
转换说明的类型码
b 解释为整数并作为二进制数输出.
c 解释为整数并作为字符输出.
d 解释为整数并作为小数输出.
f 解释为双精度并作为浮点数输出
o 解释为整数并作为八进制输出
s 解释为字符串并作为字符串输出
u 解释为整数并作为非指定小数输出
x 解释为整数并作为带有小写字母a-f的十六进制数输出
X 解释为整数并作为带有大写字母A-F的十六进制数输出
3,改变字符串中的字母大小写
strtoupper() 将字符串转换为大写
strtolower() 将字符串转换为小写
ucfirst() 如果字符串的第一个字符是字母,就将该字符转换为大写
ucwords() 将字符串每个单词的第一个字母转换为大写
格式化字符串以便存储:addslashes(), stripslashes()
存到数据库里的数据,有些可能会被解释成控制符号,这些有问题的字符就是:引号(单引和双引),反斜
杠()和NULL字符.
为了将这些字符进行转义处理,可以在他们前面加一个反斜杠.
存储数据时,先用addslashes()处理字符串,加上反斜杠.在显示用户数据之前,必须用stripslashes()
去掉引号特性.
PHP配置也可以自动启动魔术引号特性,这个功能是由magic_quotes_gpc指令控制的.
用字符串函数连接和分割字符串
使用函数explode(),implode()和join()
如:
$email_array=explode(’@',$email);
这里将顾客的电子邮件分割成两部分。并存放在$email_array[0]和$email_array[1].
然而,这个函数不能分割大写字母的字符串.所以处理之前应该先转换成小写的.
使用implode()和join()函数可以实现与explode(0相反的效果.这两个函数效果一样.
使用strtok()函数
与explode()每次都将一个字符串全部分割成若干小块不同,strtok()函数一次只从字符串中取出一些
片段(成为令牌).对于一次从字符串中取出一个单词的处理来说,strtok()效果更好.
使用substr()函数
函数substr()允许我们访问一个字符串给定起点和终点的字符串.
如:
$test=’your customer service is excellent’;
substr($test,1);
将返回:”our customer service is excellent”
substr($test,-9);
将返回:”excellent”
这个函数的第3个参数可以限制返回的字符大小:
substr($test, 5, -13);
将返回:”customer service”
字符串的比较
字符串的排序:strcmp() , strcasecmp() , 和 strnatcmp()
函数原型:
int strcmp(string str1, string str2);
该函数需要两个进行比较的参数字符串.如果这两个字符串相等,该函数返回0,如果按字典顺序str1在
str2后面(大于str2)就返回一个正数.否则返回一个负数. 这个函数是区分大小写的.
函数strcasecmp()除了不区分大小写之外,其他和strcmp()一样.
函数strnatcmp()以及与之对应的不区分大小写的strnatcasecmp()函数是按”自然排序”比较字符串
的.
所谓”自然排序”是按人们习惯的顺序,如:strcmp()会认为2大于12,因为按字典顺序2大于12.然
而,strnatcmp()则是相反.
使用strlen()函数测试字符串的长度
使用字符串函数匹配和替换子字符串
在字符串中查找字符串:strstr(), strchr() ,strrchr() ,和stristr().
如:
if (strstr($feedback,’shop’))
$toaddress=’shop@example.com’;
else if (strstr($feedback,’delivery’))
$toaddress=’delivery@example.com’;
函数strstr有两个变体, 一个是stristr(),区别在于他不区分大小写.地二个是strrchr(),他几乎和
strstr()一样,但是strstr是从第一个出现 needle的位置的前面返回字符串,而strrchr()是从最后一
个needle的位置返回.
查找子字符串的位置:strpos() ,strrpos()
如下面的代码,会在浏览器中显示数值4:
$test=’hello world’;
echo strpos($test,’o');
再如echo strpos($test,’o',5);
会返回7,因为第三个参数说明了在位置5开始搜索.
strrpos()也几乎是一样的,但是他返回的是从最后一次出项子字符串needle的位置.
替换子字符串:str_replace(), substr_replace()
最常用的是str_replace(),它的原型是:
mixed str_replace(mixed needle,mixed new_needle, mixed haystack [,int &count]));
这个函数用new_needle替换所有haystack中的needle,并且返回haystack替换后的结果.可选的第四个
参数是count,它包含要执行的替换操作次数.
例如过滤”感情色彩”单词的语句:
$feedback= str_replace($offcolor,’%!@’,$feedback);
substr_replace的原型:
string substr_replace(string string,string replacement,int start , int[length]);
这个函数使用字符串replacement替换字符串string中的一部分.具体是哪一部分则取决于起始位置和
可选参数lengeh的值.
$test=substr_replace($test,’x',-1);
这段代码会用’x'替换$test的最后一个字符.