yPh*_*hil 2 html php favicon xpath
我试图找出如何使用xpath通配符来获取favicon:
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHTML(file_get_contents($url));
$xml = simplexml_import_dom($doc);
Run Code Online (Sandbox Code Playgroud)
在这里,我正在测试“快捷方式图标”和“图标”(使用三元运算符):
$query = $xml->xpath('//link[@rel="shortcut icon"]');
$arr = (empty($query) ? $xml->xpath('//link[@rel="icon"]') : $query);
$favicon = $arr[0]['href'];
Run Code Online (Sandbox Code Playgroud)
它可以工作,但不是很优雅;是否有通配符(*)方法可一次性获得“快捷方式图标”和“图标”?
您可以使用contains:
//link[contains(@rel, "icon")]
Run Code Online (Sandbox Code Playgroud)
这将匹配在rel属性中具有文本“ icon”的任何链接元素。
注意:如果您知道rel属性将始终是“ icon”和“ shortcut icon”,那么将其显式也许更安全。这样,您就不会获得碰巧包含“ icon”的其他链接。
//link[@rel="icon" or @rel="shortcut icon"]
Run Code Online (Sandbox Code Playgroud)