PHP str_replace用下划线替换空格

Gis*_*eri 47 php str-replace

有没有理由我没有看到,为什么这不起作用?

    $string = $someLongUserGeneratedString;
    $replaced = str_replace(' ', '_', $string);
    echo $replaced;
Run Code Online (Sandbox Code Playgroud)

输出仍然包含空格......任何想法都会很棒

Lau*_*ieu 130

我建议您使用它,因为它将检查单个和多个出现的空白区域(如Lucas Green所建议的).

$journalName = preg_replace('/\s+/', '_', $journalName);
Run Code Online (Sandbox Code Playgroud)

代替:

$journalName = str_replace(' ', '_', $journalName);
Run Code Online (Sandbox Code Playgroud)

  • @LucasGreen,你说得对!正确的是:preg_replace('/\s + /','_',$ journalName); (3认同)
  • 此版本中存在错误,它只会匹配多个空间的组. (2认同)
  • 您可能还需要修剪:preg_replace('/ \ s + /','_',trim($ journalName)); (2认同)

Luc*_*een 15

试试这个:

$journalName = preg_replace('/\s+/', '_', $journalName);
Run Code Online (Sandbox Code Playgroud)

说明:您最有可能看到空格,而不仅仅是普通空格(存在差异).


Rav*_*tel 6

对于一个匹配的字符替换,使用str_replace

$string = str_replace(' ', '_', $string);
Run Code Online (Sandbox Code Playgroud)

对于所有匹配的字符替换,使用preg_replace

$string = preg_replace('/\s+/', '_', $string);
Run Code Online (Sandbox Code Playgroud)