如何使用str_replace同时替换多个字符串?(含JFactory代码场景)
解决URL同时替换多个字符串的问题
嘿,这个需求其实用PHP原生的str_replace就能轻松搞定,它本身就支持一次性替换多个搜索目标!
你原来的代码是针对单个字符串替换的,现在只需要把要替换的example1和example2放到一个数组里作为str_replace的第一个参数,替换值保持不变就行。修改后的代码如下:
$oldurl = JFactory::getURI(); // 把要替换的字符串放到数组中 $search = ['example1', 'example2']; $replace = 'replacedwiththis'; $newurl = str_replace($search, $replace, $oldurl);
或者你也可以直接把数组写进函数参数里,更简洁:
$oldurl = JFactory::getURI(); $newurl = str_replace(['example1', 'example2'], 'replacedwiththis', $oldurl);
原理说明
str_replace的第一个参数如果是数组的话,它会遍历数组里的每一个元素,把目标字符串中所有匹配到这些元素的内容,全部替换成第二个参数指定的值。而且这个方法还很灵活,如果以后你需要替换更多字符串,只需要往数组里添加新的元素就可以了,不用重复调用str_replace。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

