PHP sleep: So pausierst du Skripte in PHP

    Logo der Programmiersprache PHP
    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 03.05.2020
    zuletzt aktualisiert am: 07.02.2023

    Die PHP sleep Funktion: Skripte in PHP pausieren!

    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.

    PHP 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

    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);

    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!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig