我无法使用 while true 进行分页,无法正常工作

I can't do pagination with while true, not working properly

我正在尝试转到下一页并为此编写了 while(true) 循环,但无法正常工作。没有给我任何错误或任何东西。

这是网站link:https://suumo.jp/ms/shinchiku/osaka/sa_osaka/pnz11.html我正在尝试为分页添加 +1

$startID = 1;

while(true) {

        @$url = "https://suumo.jp/ms/shinchiku/osaka/sa_osaka/pnz1".$startID.".html";
        $html = @file_get_contents($url);
        if($http_response_header[0] == 'HTTP/1.1 200 OK') {
            libxml_use_internal_errors(true);
            $parser = new \DOMDocument();
            $parser->loadHTML($html);

代码结束。

$a = $startID+1;

        } else {
            $this->error("Next page is not found!");
        }

顺便说一句,我抓取第一页没有问题。但它不会转到下一页。知道为什么会这样吗?

你没有增加 $startID 你有 $a=$startID+1。所以循环的每次迭代 $startID 都等于 1。要修复它,您需要使用以下任一方法将其添加到自身:

$startID += 1;
//or
++$startID;
//or (if you really need $a)
$a = $startID += 1;

并更改此:

} else {
     $this->error("Next page is not found!");
     break; //exit the loop
}

我应该提到 for(;;) 大致相当于 while(true) 所以这个:

for($startID=1;;++$startID){ ... }

大致相当于这一切:

$startID = 1;
while(true){

  ++$startID;
}

除了我认为它更漂亮。我觉得很多程序员忽略了 PHP 中的 for,参数实际上也是可选的。

尽情享受吧。