手册有说:If from and to are different lengths, the extra characters in the longer of the two are ignored. echo strtr("abcdef","abc","12");//替换成12cdef,而不是12def,因为strlen('abc') > strlen('12')
strlen消耗的资源比你省下的资源要多,呵呵strtr是按字符替换的,而且替换是区分大小写的。例如: strtr('I Love you!','Lo','lO'); 结果是:I lOve yOu!strtr('I Love you!','lo','lO'); 结果是:I LOve yOu!如果你要进行字符串替换,那么可以将替换的字符串作为数组传入:如: $arr_tmp=Array('Love'=>'hate','you'=>'his sister'); strtr('I Love you!',$arr_tmp); 结果是:I hate his sister!这样就达到我们想要的结果了。但是,请注意: 如果把数组'Love'换成'love',那么结果就不一样了。 $arr_tmp=Array('love'=>'hate','you'=>'his sister'); strtr('I Love you!',$arr_tmp); 结果是:I Love his sister!看了这4个例子,你应该明白strtr的用法了。
那不够的字符如何解决?总不能补上一个空格吧?
======================
strtr ( string str, string from, string to )意思就是说如果string from 和 string to长度不等,那么多余出来的字符串将被忽略,具体看上两例. :-).
多谢诸位!
strtr('I Love you!','Lo','lO');
结果是:I lOve yOu!strtr('I Love you!','lo','lO');
结果是:I LOve yOu!如果你要进行字符串替换,那么可以将替换的字符串作为数组传入:如:
$arr_tmp=Array('Love'=>'hate','you'=>'his sister');
strtr('I Love you!',$arr_tmp);
结果是:I hate his sister!这样就达到我们想要的结果了。但是,请注意:
如果把数组'Love'换成'love',那么结果就不一样了。
$arr_tmp=Array('love'=>'hate','you'=>'his sister');
strtr('I Love you!',$arr_tmp);
结果是:I Love his sister!看了这4个例子,你应该明白strtr的用法了。