在PHP中删除

时间:2013-03-07 17:30:36

标签: php

我需要从使用Curl和simplehtml dom解析的网站中删除所有狡猾的html字符。

<?php
$html = "this is&nbsp;a text";
var_dump($html);
var_dump(html_entity_decode($html,ENT_COMPAT,"UTF-8"));

哪个输出

  

string(19)“这是一个文本”

     

string(15)“这是一个文本”

我不想使用preg *,因为文本中还有其他字符(例如&amp; deg)。 这让我疯了!

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:3)

您需要使用标题指定输出编码:

<?php
    header('Content-Type: text/html; charset=utf-8');

    $html = "this is&nbsp;a text";
    var_dump($html);
    var_dump(html_entity_decode($html,ENT_COMPAT,"UTF-8"));
?>

默认情况下,浏览器不会采用UTF-8,这就是显示错误字符的原因。

答案 1 :(得分:1)

如果这是唯一需要替换的角色,请使用str_replace()

var_dump(str_replace('&nbsp;', ' ', "this is&nbsp;a text"));

See it in action