Php 如何为“编码”;实体';igrave';“未定义”;XML提要中有错误吗?

Php 如何为“编码”;实体';igrave';“未定义”;XML提要中有错误吗?,php,xml,entity,Php,Xml,Entity,我正在从一个url构建一个提要,所以我获取所有html内容(带有“file\u get\u contents”php函数)。然后我对内容进行一些剪切,并取出我需要的内容 我似乎对口音有问题。事实上,XML页面会返回以下错误: “未定义实体'igrave',其中html为” ì “(表示“ì”的html代码)。 奥格雷夫也是如此 因此,我必须使用str_replace来处理所有内容,或者有一个编码/解码功能来解决所有可能的问题?Xml不知道(X)HTML中的命名实体。如果出现此错误,则提要无效,应

我正在从一个url构建一个提要,所以我获取所有html内容(带有“file\u get\u contents”php函数)。然后我对内容进行一些剪切,并取出我需要的内容

我似乎对口音有问题。事实上,XML页面会返回以下错误: “未定义实体'igrave',其中html为” ì “(表示“ì”的html代码)。 奥格雷夫也是如此


因此,我必须使用str_replace来处理所有内容,或者有一个编码/解码功能来解决所有可能的问题?

Xml不知道(X)HTML中的命名实体。如果出现此错误,则提要无效,应予以修复

作为一种解决方法,您可以从PHP获取翻译表,并将其与str_replace()一起使用

函数decodeNamedEntities($string){
静态$entities=NULL;
如果(NULL==$entities){
$entities=array\u flip(
阵列差异(
获取html翻译表(html实体,ENT兼容,ENT HTML401,'UTF-8'),
获取html翻译表(html实体,ENT COMPAT,ENT XML1,'UTF-8')
)
);
}
返回str_replace(数组_键($entities),$entities,$string);
}
变量转储(decodeNamedEntities('auml;hhh/gt;');
输出:

string(20) "<b>&lt;ähhh/gt;</b>"
string(20)“ähhh/gt;”
string(20) "<b>&lt;ähhh/gt;</b>"