我记得之前做过这个,但是找不到代码。我使用str_replace替换这样的一个字符:str_replace(':', ' ', $string);
但我想要替换所有以下字符\/:*?"<>|
,而不是为每个字符执行str_replace。Str_replace对于多个项目
回答
str_replace()
可以采取一个阵列,所以你可以这样做:
$new_str = str_replace(str_split('\\/:*?"<>|'), ' ', $string);
另外,您可以使用preg_replace()
:
$new_str = preg_replace('~[\\\\/:*?"<>|]~', ' ', $string);
假设OP意味着应该替换反斜杠,那preg_replace模式对我来说不起作用。为了让反斜杠按预期工作,我必须在模式中使用其中的4个(即“\\\\”)。 – GreenMatt
@GreenMatt你是对的。 – NullUserException
好的答案,加入@dogbert答案将使它完成不阅读手册,并没有意识到str_split返回一个数组的人。 – Bradmage
像这样:
str_replace(array(':', '\\', '/', '*'), ' ', $string);
或者说,在现代PHP(从5.4起任何东西),则略低少罗嗦:
str_replace([':', '\\', '/', '*'], ' ', $string);
绝对最有效的答案 – zoltar
你可以使用preg_replace()。下面的例子可以使用命令行的PHP中运行:
<?php
$s1 = "the string \\/:*?\"<>|";
$s2 = preg_replace("^[\\\\/:\*\?\"<>\|]^", " ", $s1) ;
echo "\n\$s2: \"" . $s2 . "\"\n";
?>
输出:
$ S2: “字符串 ”
str_replace(
array("search","items"),
array("replace", "items"),
$string
);
例如,如果要更换search1与replace1和search2与replace2然后下面的代码将工作:
print str_replace(
array("search1","search2"),
array("replace1", "replace2"),
"search1 search2"
);
//输出:replace1 replace2
不错!莫名其妙的逻辑,但我不知道:) –
我有一个情况,即我有两个不同的结果替换来取代HTML标签。
$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”,“水磨石,瓷砖和大理石二传手”,
要替换这些字符用空格- 1. 如何Str_replace为多个项目
- 2. 多个问题str_replace
- 3. 对于同一个标签栏项目的多个视图
- 4. QueryOver多对多项目
- 5. zabbix - 触发多个项目大于0
- 6. CSS3 PIE.js,用于多个项目
- 7. Linq:GetElementAt()等价于检索多个项目?
- 8. 基于ID插入多个项目 - Laravel
- 9. 多个项目
- 10. 多个项目
- 11. UCM Clear Case:一个项目中的流对象与多个项目的对比
- 12. str_replace函数用于多个项目,然后将结果存储在新的变量
- 13. PHP多字节str_replace?
- 14. setListAdapter多个项目?
- 15. 多个$ _POST项目
- 16. php str_replace和对象
- 17. 对整个项目
- 18. 对于一个实际的开发项目,有多少个“Eclipse项目”被认为太过分了?
- 19. 一个DLL,多个项目?
- 20. 如何将jQuery应用于多个类项目的子项?
- 21. 将GIT用于具有多个位置目录的项目
- 22. NHibernate的多对多和删除项目
- 23. Django-CMS中的多个多语言菜单项目植根于/
- 24. 基于多模块项目的maven构建多个rpms
- 25. str_replace为了简化目的
- 26. 多个项目的多个Rails版本
- 27. Play Framework:在多模块项目中合并多个Global对象
- 28. 从NHibernate中的多对多关联中移除一个项目
- 29. 从列表中选择不包含多个项目的项目(基于索引
- 30. 对于VS 2005,解决方案中的大多数项目
? –
不要害怕引用优秀的php.net手册和[复习参数部分](http://php.net/str_replace),看看你想要什么是可能的。 –