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