我想知道如何使用DOM php解析事件属性? 例如
<body onload="javascript:PopWin('http://google.com')">
我需要获取onload事件属性中的链接。 有可能吗?
不使用preg_match并解析整个html。使用DOMDocument,我们可以使用getAttribute('src')或getAttribute('href')获取所有其他属性,如“src”,“href”等。获取事件属性有什么类似的方法吗?应该捕获事件“onload”中的任何链接
感谢。
答案 0 :(得分:0)
DOM php API中没有方法可以为您提供onload
属性的URL,因此您必须使用我建议的方法(或类似方法)。但首先得到属性:
$body = "<body onload=\"javascript:PopWin('http://google.com')\"></body>";
$doc = new DOMDocument();
$doc->loadHTML($body);
$bodyElements = $doc->getElementsByTagName("body");
$body = $bodyElements->item(0);
$attribute = $body->getAttribute('onload');
echo $attribute; // outputs: javascript:PopWin('https://google.com')
完成后,您可以使用简单的正则表达式来提取URL:
(?:.+?)(https?://[\w\d.&?=]+)(?:.+?)
像这样:
$mathes = array();
preg_match('`(?:.+?)(?<url>https?://[\w\d.&?=]+)(?:.+?)`', $attribute, $matches);
echo $matches['url']; // outputs https://google.com