Подтвердить что ты не робот

Php, подождите 5 секунд перед выполнением действия

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

Вот как я использую свой script сейчас:

script.php?start=0&end=500&indexOfFile=0  ->> make a product0.txt file with first 500 products

script.php?start=501&end=1000&indexOfFile=1 ->> product1.txt file with another 500 products

script.php?start=1001&end=1500&indexOfFile=2 ->> product2.txt file with last 500 products

Как я могу изменить script, поэтому он будет делать все эти файлы автоматически, так что мне не нужно менять каждый раз, когда ссылка вручную?

Я бы хотел нажать кнопку, которая будет делать это:

создайте файл product0.txt с первыми 500 продуктами

подождите 5 секунд

создайте файл product1.txt с еще 500 продуктами

подождите 5 секунд

создайте файл product2.txt с последними 500 продуктами

4b9b3361

Ответ 1

использование:

sleep(NUMBER_OF_SECONDS);

Ответ 2

перед началом действий используйте

 sleep(5);

Ответ 3

или

usleep(NUMBER_OF_MICRO_SECONDS);

Ответ 4

Я нахожусь на общем хостинге, поэтому я не могу делать много запросов, иначе я получаю пустую страницу.

Это звучит очень странно. У меня есть самый дешевый PHP-хостинг, который я мог бы найти для моего последнего проекта - и он не ведет себя так. Я бы не заплатил за услугу. В самом деле, я в тупике даже знаю, как я могу настроить сервер для репликации этого поведения.

Независимо от того, почему он ведет себя таким образом, добавление сна в середине script не может решить проблему.

Поскольку, по-видимому, вы контролируете свой каталог продуктов, новые продукты должны быть относительно нечастыми (или вы пытаетесь получить отчеты о запасах?). Если вы управляете при изменении данных, зачем запускать сценарии автоматически? Или вы имеете в виду, что у вас уже есть эти URL-адреса, и вы получаете ожидаемые файлы, когда вы запускаете их по одному?

Ответ 5

В январе2018 года у меня работало единственное решение:

<?php

if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<10; $i++){

    echo "<br> Line to show.";
    echo str_pad('',4096)."\n";    

    ob_flush();
    flush();
    sleep(2);
}

echo "Done.";

ob_end_flush();

?>

Ответ 7

<?php
    foreach($i = 0; i < 500; $i++){
       your_code;
       delay(3); // 3 seconds
    }
?>