阻止DOMXPath评估转换特殊字符

时间:2019-02-06 20:40:29

标签: php html html5

如果您在具有特殊字符的URL上运行此DOMXPath评估(我意识到从技术上讲不是有效的url,但是某些网站仍然有它们):

$a = '<a href="http://example.org/diseño"></a>';
$path = new DOMXPath( @DOMDocument::loadHTML( $a ) );
$href = $path->evaluate( 'string(//a/@href)' );

var_dump( $href );
// http://example.org/diseño

有没有一种方法可以获取带有“正确” href的字符串-如特殊字符一样?

http://example.org/diseño

还是DOMXPath实际上正常运行,因为URL不能包含特殊字符?如果是这样,从包含特殊字符的字符串中获取href的最干净的选择是什么?

1 个答案:

答案 0 :(得分:0)

您可以只编码XPath的返回值...

echo utf8_decode($href);

这给...

http://example.org/diseño