Du liest:
PHP sleep: So pausierst du Skripte in PHP

PHP sleep: So pausierst du Skripte in PHP

von Patrick
03.05.2020
Jetzt PHP programmieren lernen

Manchmal wollen wir, dass unsere Skripte ein paar Sekunden warten, bevor sie die nächste Aktion ausführen. Hierfür gibt es in PHP die sleep Funktion.

1. sleep

Die Funktion sleep akzeptiert nur einen Parameter. Dabei handelt es sich um die Sekundenanzahl, um die die Ausführung des Skripts verzögert werden soll.

sleep($sekunden)
    $sekunden (erforderlich)
        Anzahl an Sekunden, die gewartet wird

Um die Ausführungszeit des Skripts um 5 Sekunden zu verlängern, kannst du sleep so verwenden:

sleep(5);

Um zu sehen, ob die Wartezeit wirklich eingehalten wird, kannst du sleep in Kombination mit date verwenden.

echo date('H:i:s');
// 20:10:41
sleep(5);
echo date('H:i:s');
// 20:10:46

Dabei wirst du feststellen, dass beide Werte von echo zeitgleich auf deiner Seite ausgegeben werden. Dies liegt daran, dass die Ausgabe zunächst im Ausgabepuffer komplett gespeichert wird.
Mit der Funktion flush kannst du dafür sorgen, dass die Ausgabe sofort angezeigt wird. Um Aktionen zeitverzögert durchzuführen, sind allerdings andere Sprachen wie JavaScript besser geeignet. Um flush verwenden zu können, musst du unter Umständen deine Konfigurationen anpassen oder kannst auch die Funktion ob_end_flush verwenden.

echo date('H:i:s');
// 20:25:03
ob_end_flush();
flush();
sleep(15);
echo date('H:i:s');
// 20:25:18

2. Alternativen zu PHP sleep

sleep akzeptiert als Parameter nur ganzzahlige Werte.
Gleitkommazahlen werden konvertiert, so resultiert 0,5 in 0.
Um zum Beispiel eine halbe Sekunde zu warten, kannst du stattdessen usleep verwenden. Diese Funktion verwendet Mikrosekunden als Parameter.

usleep(500000);

Mit der Funktion time_nanosleep kannst du als ersten Parameter Sekunden und als zweiten Nanosekunden angeben.
Um 1,5 Sekunden zu warten, kannst du folgendes tun:

time_nanosleep(1, 500000000);

Mit time_sleep_until kannst du einen Zeitstempel angeben, statt einer direkten Sekundenzahl. Um zum Beispiel 5 Sekunden zu warten, kannst du das tun:

time_sleep_until(time()+5);

3. Fazit

Mit sleep kannst du die Ausführungszeit deiner Skripte künstlich verlängern, allerdings solltest du das in Produktivumgebungen vermeiden so gut als möglich.
Unter Umständen solltest du für manche Anwendungsfälle sogar eher clientseitige Sprachen wie JavaScript verwenden.

Hast du Kritik, Lob, Anmerkungen oder einen Fehler gefunden? Schreib mir doch einen Kommentar dazu!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren