从simple_html_dom php中经过一定数量的循环后,如何停止foreach循环
我在使用xml解析器时就这样做了,但当我使用simple_html_dom从页面中提取数据时,它似乎不起作用 这是我现在的代码从simple_html_dom php中经过一定数量的循环后,如何停止foreach循环,php,loops,foreach,simple-html-dom,Php,Loops,Foreach,Simple Html Dom,我在使用xml解析器时就这样做了,但当我使用simple_html_dom从页面中提取数据时,它似乎不起作用 这是我现在的代码 $counter = 0; $curl = curl_init(); curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$counter = 0;
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curl, CURLOPT_URL, 'the url of the website');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$feedURL = str_get_html($str);
foreach($feedURL->find('li[class="videoblock"]') as $video) {
$get_title = $video->find('span[class="title"]', 0);
$title = $get_title->plaintext;
echo $title . '<br/>';
if ($counter+1 >= 3) break;
}
$feedURL->clear();
unset($feedURL);
到3号就停下来。或者在使用简单的html dom提取数据时会有所不同?在我使用simplexml加载文件获取数据的函数中使用它,它起作用。实际上并没有增加
$counter
变量,因此它将始终保持0
如果要增加,请使用以下方法:
if ($counter++ >= 3) break;
尽管在您的具体情况下,您可能需要(请参阅):
实际上,您并没有增加
$counter
变量,因此它将始终保持0
如果要增加,请使用以下方法:
if ($counter++ >= 3) break;
尽管在您的具体情况下,您可能需要(请参阅):
这是可行的,但是为什么$counter++不同于$counter+1,而且如果我使用$counter++>=3,它会得到4个视频,而不是3个,所以我应该将起始计数器设置为$counter=1,或者将$counter++>=2设置为3个视频。这就是我设置$counter的原因+1@AleksandarĐ或đevićI刚刚编辑了手册的链接,在您的情况下,您需要增加,然后进行比较
++
对变量进行操作,+1
不会修改变量,您需要手动分配它:$counter=$counter+1
。是的,是的,我在您的帖子和编辑之间写了一个答案。现在我明白了,不知道增量前和增量后有什么区别。谢谢你的快速回答。但是stackoverflow还不允许我接受你的回答。我稍后会回来将其标记为已接受。这是可行的,但为什么$counter++与$counter+1不同,而且如果我使用$counter++>=3,它将获得4个视频,而不是3个,因此我应该将起始计数器设置为$counter=1或设置$counter++>=2以获得3个视频。这就是我设置$counter的原因+1@AleksandarĐ或đevićI刚刚编辑了手册的链接,在您的情况下,您需要增加,然后进行比较++
对变量进行操作,+1
不会修改变量,您需要手动分配它:$counter=$counter+1
。是的,是的,我在您的帖子和编辑之间写了一个答案。现在我明白了,不知道增量前和增量后有什么区别。谢谢你的快速回答。但是stackoverflow还不允许我接受你的回答。我稍后会回来把它标记为已接受。
if (++$counter >= 3) break; // first increment, return value and then compare