-1

如果我有以下 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/";

等等。

4

1 回答 1

4

您可以使用DOMDocumentwith 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)从文件加载内容。

于 2013-01-15T21:33:15.623 回答