如何防止str_replace连续替换两次?


How can I prevent str_replace from replacing twice in a row?

我不知道如何恰当地表达这个问题,抱歉。

我正试图从数据库中的名称创建干净的虚拟目录。这些名称可以是foo barfoo/barfoo / barfoo: bar等。

我正试图用-取代spaces, :, /来清理url,所以我有:

$search_array = array(" ","-", ":", "/");
$clean_url = str_replace($search_array, "-", $name);

foo bar的情况下,这将其更改为foo-bar,这是我想要的结果,但当涉及到foo : bar时,它将更改为foo---bar

是否有一些方法我可以得到str_replace只替换一次,如果发现多个结果?

我想把东西,如[space]:[space]在搜索数组,但我有大约60万个名字,我不确定有组合的数量。

str_replace不会在这里做你想要的。您需要使用preg_replace,请查看文档