preg_replace所有空格

时间:2011-11-17 23:05:13

标签: php

我正在尝试用下划线替换所有空格,以下内容无效:

$id = "aa aa";
echo $id;
preg_replace('/\s+/', '_', $id);
echo $id;

打印

aa aaaa aa

5 个答案:

答案 0 :(得分:59)

函数preg_replace不会就地修改字符串。它返回一个带有替换结果的新字符串。您应该将回调结果分配回$id变量:

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

答案 1 :(得分:15)

我认为str_replace()可能更合适:

$id = "aa aa";
$id = str_replace(' ', '_', $id);
echo $id;

答案 2 :(得分:12)

您忘记将preg_replace的结果分配到$id

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

答案 3 :(得分:2)

我们需要替换字符串中的空格" aa aa"用' _' (下划线)。 \ s +用于匹配多个空格。输出将是" aa_aa"

<?php

$id = "aa aa";
$new_id = preg_replace('/\s+/', '_', $id);
echo $new_id;

?>

答案 4 :(得分:2)

有时,在linux / unix环境中,

$strippedId = preg_replace('/\h/u', '',  $id);

试试这个。