如果我有以下 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
with DOMXpath
(加上此参考或此图表)从 HTML 中提取几乎任何内容:
$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)
从文件加载内容。