我正在尝试找出如何使用xpath通配符来获取favicon:
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHTML(file_get_contents($url));
$xml = simplexml_import_dom($doc);
在这里,我正在测试“快捷图标”和“图标”(使用三元运算符):
$query = $xml->xpath('//link[@rel="shortcut icon"]');
$arr = (empty($query) ? $xml->xpath('//link[@rel="icon"]') : $query);
$favicon = $arr[0]['href'];
它有效,但它不是很优雅;是否有通配符(*
)方法同时获取“快捷图标”和“图标”?
答案 0 :(得分:4)
您可以使用contains
:
//link[contains(@rel, "icon")]
这将匹配任何包含文字" icon"的链接元素。在其rel属性中。
注意:如果您知道rel属性将始终为" icon"和"快捷方式图标",明确可能更安全。这样你就不会得到一些恰好包含" icon"。
的其他链接//link[@rel="icon" or @rel="shortcut icon"]