我想从HTML字符串中提取所有链接文本和hrefs,但源字符串是Unicode,并且nodeValue似乎无法应付此问题?PHP:Unicode nodeValue?
$links = array();
$titles = array();
$dom = new DOMDocument();
$dom->loadHTML($str);
$hrefs = $dom->getElementsByTagName("a");
foreach ($hrefs as $href) {
$links[] = $href->getAttribute("href");
$titles[] = $href->nodeValue;
}
我的源字符串看起来是这样的:
<p><a href='uploads/root/tr_62.pdf'>Türkiye</a></p>
但我对$输出标题[0]是这样的:
Türkiye
如何使的nodeValue尊重Unicode字符?
感谢您的期待!
当您添加'标题( “内容类型:text/html的;字符集= UTF-8”);'到您的脚本(第一输出之前)它解决了这个问题吗? –
我有一个完整的HTML页眉, <!doctype html>
etc ... –'DOMDocument'和所有的XML函数默认为UTF-8,所以它们可以很好地处理Unicode。从你的输出中,你的应用程序使用某种单字节非Unicode编码或者未能声明其编码(''标签大多不相关,HTTP标头当然是真正的内容)。 ///现在将您的PHP代码分开。如果您复制并粘贴静态“车”,它是否正确打印? –