Str_replace用于多个项目

我记得之前这样做过,但是找不到代码。 我使用str_replacereplace一个字符,如下所示: str_replace(':', ' ', $string); 但我想要replace所有以下字符\/:*?"<>| ,而不是为每个字符执行str_replace。

str_replace()可以接受一个数组,所以你可以这样做:

 $new_str = str_replace(str_split('\\/:*?"<>|'), ' ', $string); 

或者,您可以使用preg_replace()

 $new_str = preg_replace('~[\\\\/:*?"<>|]~', ' ', $string); 

喜欢这个:

 str_replace(array(':', '\\', '/', '*'), ' ', $string); 

或者,在现代PHP(从5.4开始的任何东西),稍微罗嗦:

 str_replace([':', '\\', '/', '*'], ' ', $string); 
 str_replace( array("search","items"), array("replace", "items"), $string ); 

例如 ,如果您想用replace1和search2replacesearch1和replace2,那么以下代码将起作用:

 print str_replace( array("search1","search2"), array("replace1", "replace2"), "search1 search2" ); 

//输出:replace1 replace2

如果你只replace单个字符,你应该使用strtr()

你可以使用preg_replace() 。 以下示例可以使用命令行php运行:

 <?php $s1 = "the string \\/:*?\"<>|"; $s2 = preg_replace("^[\\\\/:\*\?\"<>\|]^", " ", $s1) ; echo "\n\$s2: \"" . $s2 . "\"\n"; ?> 

输出:

$ s2:“string”

我有一种情况,我不得不用两个不同的replace结果replaceHTML标签。

 $trades = "<li>Sprinkler and Fire Protection Installer</li> <li>Steamfitter </li> <li>Terrazzo, Tile and Marble Setter</li>"; $s1 = str_replace('<li>', '"', $trades); $s2 = str_replace('</li>', '",', $s1); echo $s2; 

结果

“洒水和消防安装人员”,“Steamfitter”,“水磨石,瓷砖和大理石安装员”,