PHP: Unicode nodeValue?



我正在尝试从HTML字符串中提取所有链接文本和href,但是源字符串是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> 

但是我对 $titles[0] 的输出如下所示:

Türkiye

如何使nodeValue尊重Unicode字符?

感谢您的观看!

你经常使用mb_convert_encoding

$dom = new DOMDocument();
$html_data  = mb_convert_encoding($str , 'HTML-ENTITIES', 'UTF-8'); 
$dom->loadHTML( $html_data  );
$hrefs = $dom->getElementsByTagName("a");
foreach ($hrefs as $href) {
    $links[] = $href->getAttribute("href");
    $titles[] = $href->nodeValue;
}

谢谢,用户 Veve 的评论回答了我的问题。

以下行解决了我的问题:

$str = mb_convert_encoding( $str, 'html-entities', 'utf-8' );  

相关内容

  • 没有找到相关文章

最新更新