如何从部分编码的文本中获取格式正确的内容

时间:2012-08-28 10:10:59

标签: php html encoding special-characters html-entities

我的脚本获取大量文本 - 它可能是HTML代码,也可能只是纯文本,特殊字符可能是否编码或两者兼而有之。

因此,内容可能包含以下内容:

Don't Do That

It's called "Meme"

He said: 'Yeah'

如何才能将其作为一种类型编码 - 是否编码?

我试过了:

htmlentities(html_entity_decode($text), ENT_QUOTES, "UTF-8"), ENT_NOQUOTES, "UTF-8")

但它并不适用于所有情况。例如:

返回

1 个答案:

答案 0 :(得分:1)

由于html_entity_decode不会“双解码”你的字符串,你可以使用这样的东西:

$str=<<<STR
Don&#039;t Do That
It's called "Meme"
He said: &#039;Yeah&#039;
STR;

$tmp=html_entity_decode($str,ENT_QUOTES,"UTF-8");
while($str!=$tmp)
{
    $str=$tmp;
    $tmp=html_entity_decode($str,ENT_QUOTES,"UTF-8");
}

现在你有一个完全解码的$str,你可以编码或直接使用它,无论你喜欢什么。

当然这不是一个完美的解决方案 - 有时人们倾向于首先编码他们的字符串 - 如果你无法控制或过滤数据源,那么值得一试。