我有以下代码:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$doc = new DomDocument;
$doc->preserveWhiteSpace = false;
if ($doc->loadHtml(curl_exec($ch)))
$anchors = $doc->getElementById('comments')->getElementsByTagName('a');
?>
在评论div中搜索所有链接(&lt; a&gt;标记)的远程页面。
我希望这个函数只返回50第一个&lt; a&gt;标签,无需解析整个div。 那可能吗 ? 如果是的话,怎么样?
提前致谢。
答案 0 :(得分:2)
使用XPath表达式:
$elements = 50;
$doc = new DOMDocument;
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$anchors = $xpath->query(
sprintf('//div[@id="comments"]/a[position() <= %d]', $elements)
);