首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: Unicode nodeValue?

PHP: Unicode nodeValue?
EN

Stack Overflow用户
提问于 2017-02-15 19:25:10
回答 2查看 202关注 0票数 0

我试图从一个超文本标记语言字符串中提取所有的链接文本和href,但是源字符串是Unicode,而nodeValue似乎不能处理这个问题?

代码语言:javascript
复制
$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;
}

我的源字符串如下所示:

代码语言:javascript
复制
<p><a href='uploads/root/tr_62.pdf'>Türkiye</a></p> 

但我对$titles的输出如下所示:

代码语言:javascript
复制
Türkiye

如何让nodeValue尊重Unicode字符?

感谢您的关注!

EN

回答 2

Stack Overflow用户

发布于 2017-02-15 19:30:25

您经常使用mb_convert_encoding吗

代码语言:javascript
复制
$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;
}
票数 2
EN

Stack Overflow用户

发布于 2017-02-15 19:37:55

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

下面这行代码解决了我的问题:

代码语言:javascript
复制
$str = mb_convert_encoding( $str, 'html-entities', 'utf-8' );  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42248014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档