使用PHP从HTML页面返回结果

时间:2013-01-15 21:28:13

标签: php html

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

等等。

1 个答案:

答案 0 :(得分:4)

您可以使用DOMDocumentDOMXpath(以及this referencethis 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)以从文件中加载内容。