1

我的脚本包含大量文本 - 它可能是 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")

但并非在所有情况下都有效。例如:

返回

4

1 回答 1

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完全解码的,然后你可以编码它或直接使用它,无论你喜欢什么。

当然这不是一个完美的解决方案——有时人们倾向于首先对他们的字符串进行编码——如果你不能控制或过滤数据源,它可能值得一试。

于 2012-08-28T16:11:45.557 回答