作为php初学者,在查找能实现字符串替换功能的php函数的时候,可能会碰到这两个函数:str_replace()和strtr()
作为初学者,因为strtr()函数名称的简短,语法的简洁可能会倾向于先尝试使用strtr()
但笔者在尝试过以后,发现strtr这个函数并不是字符串替换的合适选择,我们应该使用str_replace()函数
下面是str_replace()的语法:
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
其中mixed类型在这里代表可以接受字符串和数字,我们以字符串为例:
str_replace("it","i love it","itjsxx.com")
将itjsxx.com中的it替换为i love it,结果为"i love itjsxx.com"
注意:被查找字符串参数是在第三个,不是第一个。这个可能有点让人不太习惯。
再来说说strtr()为什么不适合做字符串替换
下面是strtr()的语法:
string strtr ( string $str , string $from , string $to )
该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符
看起来是很简洁很好用很没有问题的一个字符串替换函数,但是实际却有两个大问题:
1.from和to的长度必须相当,如果不相等多余的字符部分将被忽略。
2.from和to的基本操作单位是字符,而不是字符串。假设from是"io",to是"ef",它的意思是所有i字符替换为e,所有o字符替换为f,根本不是我们所期望的"io"替换为"ef"。这结果与我们的需求完全是大相径庭。
因此,strtr这个函数,根本不适合一般的替换需求。如果有特殊的替换需求符合此函数,可以选用此函数。php字符串替换,还是用str_replace()正解
php字符串替换用str_replace()函数,别用strtr()
转载请注明出处:IT技术学习网 http://www.itjsxx.com/php/php_str_replace.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。