如果我有以下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/";
等等。
答案 0 :(得分:4)
您可以使用DOMDocument
和DOMXpath
(以及this reference或this chart)从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)
以从文件中加载内容。