Я не могу сделать нумерацию страниц, пока правда, не работает должным образом - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь перейти на следующую страницу и для этого написал while(true) цикл, но не работает должным образом.Не дает мне ни ошибки, ни чего-либо, просто ничего.

Это ссылка на сайт: 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!");
        }

Кстати, я соскребаю первую страницу без проблем.Но это не идет на следующей странице.Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 15 октября 2018

Вы не увеличиваете $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
}

Iследует упомянуть, что for(;;) примерно эквивалентно while(true) Итак, это:

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

Примерно эквивалентно всему этому:

$startID = 1;
while(true){

  ++$startID;
}

За исключением того, что это намного красивее в моем мнении.Я чувствую, что многие программисты игнорируют for в PHP, аргументы на самом деле тоже необязательны.

Наслаждайтесь.

...