如何使用 curl 只打印一个标签
how to print only one tag with curl
我的网站上有 2 或 3 个标签 <p>
,但我只想打印第一个和第二个 <p>
。
我该怎么做?
这是我的代码
<?php
$url = "http://www.web.org/dorama/1401143633/momikeshite-fuyu--wagaya-no-mondai-nakatta-koto-ni";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
foreach($dom->getElementsByTagName('p') as $link) {
echo $dom->saveXML( $link);
}
?>
当您使用 getElementsByTagName()
时,您会得到一个节点列表 ( DOMNodeList ),您当前使用 foreach()
来遍历所有节点。如果你只想要第一个,你可以使用 item()
来获取你想要的特定的(在这种情况下为 0)...
echo $dom->saveXML( $dom->getElementsByTagName('p')->item(0) );
我的网站上有 2 或 3 个标签 <p>
,但我只想打印第一个和第二个 <p>
。
我该怎么做?
这是我的代码
<?php
$url = "http://www.web.org/dorama/1401143633/momikeshite-fuyu--wagaya-no-mondai-nakatta-koto-ni";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
foreach($dom->getElementsByTagName('p') as $link) {
echo $dom->saveXML( $link);
}
?>
当您使用 getElementsByTagName()
时,您会得到一个节点列表 ( DOMNodeList ),您当前使用 foreach()
来遍历所有节点。如果你只想要第一个,你可以使用 item()
来获取你想要的特定的(在这种情况下为 0)...
echo $dom->saveXML( $dom->getElementsByTagName('p')->item(0) );