在PHP中如何替换文本字符串中的多个项目?

67

我希望能够用一个函数将空格替换为-,同时也想要删除逗号和问号。有什么方法可以实现这个功能?

目前,我已经成功将空格替换了:

str_replace(" ","-",$title)

2
你可以将多个搜索值传递给 str_replace() 函数。 - JJJ
我知道这个问题已经有答案了,但是对于那些不需要像@napolux下面回答的数组的人来说,这也适用于你。$text = "It's TIME on DAY in COUNTRY"; $time = str_replace("TIME","05:00PM", $text); $day = str_replace("DAY","Monday", $time); $merge = str_replace("COUNTRY","US", $day); echo $merge; - Dexter
1个回答

266

你可以将数组作为参数传递给str_replace()。请查看手册

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = ["fruits", "vegetables", "fiber"];
$yummy   = ["pizza", "beer", "ice cream"];

$newPhrase = str_replace($healthy, $yummy, $phrase);

3
期望垃圾食品变得更加健康,让我感到困惑了。换成的东西太糟糕了!开个玩笑,说句正经的,如果函数接受一个形如[search=>replace]的单一数组作为“替换”参数会更容易些。 - E Ciotti
5
若想传入一个关联数组用于替换,可以将$replacements数组的键和值分别作为str_replace函数的参数array_keys($replacements)和array_values($replacements)。详见 https://dev59.com/dXRB5IYBdhLWcg3wuZbo 的第一个答案。 - matthewv789
2
str_replace会逐个替换序列中的每一项,但您也可以使用strtr同时替换多个项目。 - Anderson Green
@AndersonGreen 最佳答案。没有得到星星,但是救了我! - Thanasis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接