php - 停止 DOMXPath 评估转换特殊字符
问题描述
如果您在带有特殊字符的 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
还是因为 url 不能有特殊字符,所以 DOMXPath 实际上工作正常?如果是这样,从包含特殊字符的字符串中获取 href 的最干净的替代方法是什么?
解决方案
您可以只对 XPath 的返回值进行编码...
echo utf8_decode($href);
这使...
http://example.org/diseño
推荐阅读
- jquery - 使用类似于俄罗斯方块的下降单元格在加载时为表格设置动画
- puppeteer - puppppeteer js 元素即使在控制台中也没有点击
- c# - Selenium Webdriver 与 C# 有没有办法滚动鼠标滚轮?
- google-apps-script - 谷歌表格(谷歌财经) - 一次获取股票价格并跟踪
- time-series - 使用 AICc 使用 TSLM 选择滞后预测变量
- polymer - 在 Polymer 3 元素或 lit-elements 中加载普通 JavaScript
- java - 实时firebase分页时删除重复项的算法
- logging - 播放框架 2.6 访问日志不起作用
- ios - iOS13 OnDevice 语音识别(supportsOnDeviceRecognition 标志)
- firebase - iOS Firebase 推送通知在生产中的 iPhone 11 上不起作用