[PHP] Jak zatrzymać wykonywanie skryptu na określoną liczbę sekund?
Chcesz wstrzymać na chwilę wykonywanie skryptu.
Zwykle skrypty mają działać jak najszybciej i wręcz niechcianym zjawiskiem są różnego rodzaju opóźnienia. Jednak czasem wymagane jest wstrzymanie działania skryptu na kilka chwil, szczególnie jak przetwarzanie danych z jednego skryptu ma znaczenie w kolejnych, a przy tym ważna jest kolejność przetwarzania danych w skryptach.
Aby nie doszło do sytuacji, gdzie dane nie zostały jeszcze obliczone, a już pobierane są przez inny skrypt, można działanie skryptu łatwo wstrzymać na określoną liczbę sekund. Zobacz jak:
<?
$teraz = time();
$opoznienie = 5; // w sekundach
while (time()<$teraz+$opoznienie) { }
?>
Posłuży nam do tego zwykła pętla while(). Pobieramy aktualny znacznik czasu w sekundach (np. wynosi on w tej sekundzie, gdy piszę poradę 1065529820) i określamy opóźnienie w postaci kilku sekund.
Pętla wykonuje się do chwili aż aktualny znacznik czasu będzie równy temu wcześniejszemu, powiększonemu o określoną liczbę sekund. W ten sposób pusta pętla będzie wykonywać się podaną przez nas ilość sekund i dopiero po tym czasie przetwarzane będą kolejne linie skryptu.