次の HTML コードがあるとします。
<ul>
<li>
<a href="/link1/">link 1</a>
</li>
<li>
<a href="/link2/">link 2</a>
</li>
...
</ul>
PHP を使用して、すべての href の内容を含む配列を返すにはどうすればよいですか?
元:
$array[0]="/link1/";
$array[1]="/link2/";
等々。
(およびこの参照またはこのチャートDOMDocument
)と一緒に使用して、HTMLからほぼ何でも抽出できます。DOMXpath
$dom = new DOMDocument;
$dom->loadHTML('<ul>
<li><a href="/link1/">link 1</a></li>
<li><a href="/link2/">link 2</a></li>
</ul>');
$xpath = new DOMXpath($dom);
$links = array();
foreach($xpath->query("//ul//a[@href]") as $a) {
$links[] = $a->getAttribute("href");
}
var_dump($links);
// array(2) {
// [0]=>
// string(7) "/link1/"
// [1]=>
// string(7) "/link2/"
// }
ファイルからコンテンツをロードするには、 に変更loadHTML($string)
します。loadHTMLFile($path_or_url)