Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从simple_html_dom php中经过一定数量的循环后,如何停止foreach循环_Php_Loops_Foreach_Simple Html Dom - Fatal编程技术网

从simple_html_dom php中经过一定数量的循环后,如何停止foreach循环

从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');

我在使用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');
    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