Str_replace用于多个项目

sam*_*old 106 php string str-replace

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

Dog*_*ert 166

像这样:

str_replace(array(':', '\\', '/', '*'), ' ', $string);
Run Code Online (Sandbox Code Playgroud)

或者,在现代PHP(从5.4开始的任何事情)中,稍微不那么罗嗦:

str_replace([':', '\\', '/', '*'], ' ', $string);
Run Code Online (Sandbox Code Playgroud)


Nul*_*ion 107

str_replace() 可以采取数组,所以你可以这样做:

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

或者你可以使用preg_replace():

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

  • 假设OP意味着应该替换反斜杠,那preg_replace模式对我来说不起作用.为了使反斜杠按预期工作,我不得不在模式中使用其中的4个(即"\\\\"). (2认同)

Sum*_*and 62

例如,如果要将search1替换为replace1,将search2替换为replace2,则以下代码将起作用:

print str_replace(
    array("search1","search2"),
    array("replace1", "replace2"),
    "search1 search2"
);
Run Code Online (Sandbox Code Playgroud)

//输出:replace1 replace2


Mar*_*rty 45

str_replace(
    array("search","items"),
    array("replace", "items"),
    $string
);
Run Code Online (Sandbox Code Playgroud)


Exp*_*lls 6

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

  • 仅单个字符?怎么来的? (2认同)