strtr函数的另一种情况
< ?php教程 echo strtr("i loves you","love","lovea"); ?>
结果是
i loves you
注意看第三个参数的a,在结果中并没有出现
4.我不建议用strtr以少换多
ok,既然这个strtr函数挺麻烦为什么还要用呢?
原因是,它的速度很快
据说,strtr 比 str_replace 快四倍
5.php字符串替换能用strtr函数的时候一定要用
那怎么用才舒服?
这就是它的第二种情况
strtr(string,array)
6.strtr符合意愿的使用方法
< ?php $table_change = array('you'=>'her sister'); echo strtr("i love you",$table_change); ?>
结果为
i love her sister
7.小技巧:你想到php字符串替换该替换什么你就往数组加什么
比如
< ?php $table_change = array('you'=>'her sister'); $table_change += array('love' => 'hate'); echo strtr("i love you",$table_change); ?>
结果是
i hate her sister
str_replace
替换
替换的意义在于将一个字符串的一部分进行改动,使之成为别外一个新的字符串,以满足新的需求。php里通常用str_replace("要替换的内容", "要取代原内容的字符串", "原字符串")进行替换。
echo str_replace("iwind", "kiki", "i love iwind, iwind said"); // 将输出 "i love kiki, kiki said"
即将 原字符串中的所有"iwind"都替换成了"kiki".
str_replace是大小写敏感的,所以对你不能设想用 str_replace("iwind", "kiki",...)替换原字符串中的"iwind".
str_replace还能实现多对一,多对多的替换,但无法实现一对多的替换:
echo str_replace(array("iwind", "kiki"), "people", "i love kiki, iwind said");
将会输出
i love people, people said
第一个参数中的array("iwind", "kiki")都被替换成了"people"
echo str_replace(array("iwind", "kiki"), array("gentle man", "ladies"), "i love kiki, iwind said");
输出 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。
和此有些类似的是strtr,
此外,php还提供了substr_replace,实现替换一部分的字符串。语法如下:
substr_replace (原字符串, 要替代的字符串, 开始替换的位置 [, 替换的长度])
其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。
echo substr_replace("abcdefgh", "def", 3); // 将输出 "abcdef"
echo substr_replace("abcdefgh", "def", 3, 2); // 将输出 "abcdeffgh"
第一个例子中,从第三个位置(即"d")开始替换,从而把 "defgh"都替换成了“def”
第二个例子中,也是从第三个位置(即"d")开始替换,但只能替换2个长度,即到e,所以就把"de"替换成了"def".
php还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换,用法请参考手册。
定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
语法
str_replace(find,replace,string,count)参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
提示和注释
注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。
注释:该函数是二进制安全的。
例子
例子 1
<?php
echo str_replace("world","john","hello world!");
?>