-2

重複の可能性:
A要素のhref属性を取得する

DOM phpを使用してイベント属性を解析する方法を知りたいですか?例えば

<body onload="javascript:PopWin('http://google.com')">

onloadイベント属性内のリンクを取得する必要があります。出来ますか?

preg_matchを使用せず、html全体を解析します。DOMDocumentを使用すると、getAttribute('src')またはgetAttribute('href')を使用して、「src」、「href」などの他のすべての属性を取得できます。イベント属性を取得するための同様の方法はありますか?「onload」イベントで発生するリンクはすべてキャッチする必要があります

ありがとう。

4

1 に答える 1

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
于 2012-09-11T07:29:37.710 に答える