我无法让这个工作。我使用xpath选择器抓取网站,这将返回38个结果,这些结果将添加到数组$ list中。现在前5个结果和最后3个结果对我来说都没用。我需要的是只将结果6-35添加到数组中。我已经尝试了if,for和while条件的许多不同组合,但似乎无法使其工作。我很想听听我做错了什么,最后让它发挥作用。
$url = "www.theurl.com";
$html = new DOMDocument();
@$html->loadHtmlFile($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query("//span[@class='mp-listing-title']");
$list = array();
$i = 0;
foreach ($nodelist as $n) {
$i++;
}
if ($i >=5 && $i <=35) {
$value = $n->nodeValue;
$list[] = $value;
}
感谢您的帮助!
答案 0 :(得分:2)
试试这个,它可以帮到你:
$url = "www.theurl.com";
$html = new DOMDocument();
@$html->loadHtmlFile($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query("//span[@class='mp-listing-title']");
$list = array();
$i = 0;
foreach ($nodelist as $n) {
if ($i >=5 && $i <=35) {
$value = $n->nodeValue;
$list[] = $value;
}
$i++;
}
答案 1 :(得分:0)
尝试以下方法:
$url = "www.theurl.com";
$html = new DOMDocument();
@$html->loadHtmlFile($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query("//span[@class='mp-listing-title']");
$list = array();
$i = 0;
foreach ($nodelist as $n) {
if ($i >=5 && $i <=35) {
$value = $n->nodeValue;
$list[] = $value;
}
$i++;
}
你的条件不在循环中。