2

我想用多个空格替换字符串中的单个空格。请告知如何做。示例代码:

  <?php
    $input="bikash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ranjan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nayak";
    echo $output =preg_replace('/(( )+|(\\n)+)/', '$2$3',$input);

    ?>

输出来了:
“bikash ranjan nayak”

4

7 回答 7

4

你可以使用正则表达式

$output = preg_replace('!\s+!', ' ', $input);
于 2013-07-05T11:36:52.840 回答
2

试试这个。它将在浏览器上显示为单个空格

$output = str_replace("&nbsp", " ",$input);
于 2013-07-05T11:40:28.430 回答
1

尝试这个

$output = implode("&nbsp;",array_filter(explode("&nbsp;",$input)));
于 2013-07-05T11:36:34.760 回答
1
$output = preg_replace('!\(&nbsp;)+!', '&nbsp;', $input);
于 2013-07-05T11:37:44.107 回答
1

尝试这个

$output = preg_replace('/\s+/', ' ',$input);
于 2013-07-05T11:38:09.503 回答
1

添加了解码 html 实体的额外行 ($input = html_ent.....)。

$input="bikash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ranjan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nayak";

$input = html_entity_decode($input);

echo $output =preg_replace('/(( )+|(\\n)+)/', '$2$3',$input);
于 2013-07-05T11:38:45.473 回答
1

试试这个代码

$input="bikash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ranjan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nayak";
$array = explode('&nbsp;', $input);
$output = implode('&nbsp;', array_filter($array));
echo $output;

一个班轮:

$output = implode('&nbsp;', array_filter(explode('&nbsp;', $input)));
于 2013-07-05T11:47:37.147 回答