69

有没有我看不到的原因,为什么这不起作用?

    $string = $someLongUserGeneratedString;
    $replaced = str_replace(' ', '_', $string);
    echo $replaced;

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

4

4 回答 4

193

我建议您使用它,因为它会检查单个和多个出现的空白(如 Lucas Green 所建议的那样)。

$journalName = preg_replace('/\s+/', '_', $journalName);

代替:

$journalName = str_replace(' ', '_', $journalName);
于 2012-10-03T08:31:25.630 回答
21

试试这个:

$journalName = preg_replace('/\s+/', '_', $journalName);

说明:您很可能会看到空格,而不仅仅是纯空格(有区别)。

于 2012-10-03T08:31:09.517 回答
8

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

$string = str_replace(' ', '_', $string);

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

$string = preg_replace('/\s+/', '_', $string);
于 2015-02-25T05:13:32.453 回答
0

试试这个:

$journalName = str_replace(' ', '_', $journalName);

删除空白

于 2016-01-22T06:11:35.747 回答