替换隐藏在文本中的字符

时间:2012-03-26 11:05:38

标签: php regex

如何删除 (隐藏)和下面文字中的空格

  • 保留UNICODE字符
  • 暂挂<br>代码

我测试过:

  • 我使用trim($string) =&gt;没工作
  • 我使用str_replace('&nbsp;', '', $string) =&gt;没工作
  • 我使用了一些正则表达式=&gt;没工作

                <br>تاريخ ورود: یکشنبه ۲۳ بهمن ماه ۱۳۹۰
    

更新:Image of hidden   感谢

最终解决方案:

            $string = htmlentities($string, null, 'utf-8');
            $string = str_replace("&nbsp;", "", $string);

5 个答案:

答案 0 :(得分:51)

此解决方案可行,我测试了它:

$string = htmlentities($content, null, 'utf-8');
$content = str_replace("&nbsp;", "", $string);
$content = html_entity_decode($content);

答案 1 :(得分:34)

未经测试,但如果你使用类似的东西:

$string = preg_replace("/\s/",'',$string);

那应该删除所有空格。

<强>更新

要删除所有空格和&nbsp;引用,请使用以下内容:

$string = preg_replace("/\s|&nbsp;/",'',$string);

更新2

试试这个:

$string = html_entity_decode($string);

$string = preg_replace("/\s/",'',$string);

echo $string;

忘了说,重新转换html实体,所以在替换后添加:

htmlentities($string);

答案 2 :(得分:2)

所有解决方案都是上述工作,直到有人开始使用德语,其中有这样的字母:

ä &auml;

和其他类似的。 我使用以下代码:

$string = preg_replace ( "!\s++!u", ' ', $string );

此处有更多详情:PCRE(3) Library Functions Manual

答案 3 :(得分:1)

这对我有用。

preg_replace("/&nbsp;/",'',$string)

答案 4 :(得分:-2)

替换是个好主意,但您必须使用多字节功能。您可以在这里的评论中找到一些实现:http://php.net/manual/en/ref.mbstring.php