Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Script verzögern um Sekunden

Sie befinden sich: Home > Php Tutorial > Script verzögern um Sekunde...

Script verzögern um Sekunden


Eintrag am:  26.09.2010
Hits / Besucher:  13726
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von    schubertmedia
 
Beschreibung

Im Allgemeinen wünscht sie sich, dass die eigenen PHP-Scripte möglichst schnell ausgeführt werden – schließlich sollen die Besucher einer Web-Seite nicht unnötig lange auf die Inhalte warten. Es gibt aber Anlässe, die Ausführung eines Scripts bewusst zu verzögern: Sei es, um Downloads zu bremsen (und so Bandbreite zu sparen), oder um besondere Effekte (beispielsweise bei Spielen) zu erzielen.

Eine Verzögerung um eine bestimmte Zeitspanne kann in PHP mit der Funktion sleep() erreicht werden.

Der Syntax:

sleep(Sekunden)

Der Parameter gibt die Dauer in Sekunden an, um welche die Ausführung verzögert werden soll. Abgesehen von der Verzögerung hat ein Aufruf der Funktion sleep() keine weiteren Auswirkungen. Das folgende Beispiel zeigt den Effekt der Funktion.

Beispiel:

<?php

echo 'Script Start: '.date('h:i:s') . ' Uhr<br>';
sleep(5);
echo 'Script Ende: '.date('h:i:s') . ' Uhr<br>';
?>

In der ersten Zeile des Script wird die aktuelle Uhrzeit ausgegeben. Anschließend wird die Funktion sleep() aufgerufen, gefolgt von einer weiteren Ausgabe der Uhrzeit.

Ausgabe*:

Script Start: 10:23:51 Uhr

Script Start: 10:23:56 Uhr

Wie die Ausgabe erkennen lässt, liefert der zweite Aufruf der Funktion date() eine Uhrzeit, die fünf Sekunden nach dem Ergebnis des ersten Aufrufs liegt. Diese fünf Sekunden Unterschied werden durch den Aufruf von sleep() mit dem Parameter „5“ erreicht.

Wie oben erwähnt, können Sie mit der Funktion sleep() bei Downloads von ihrer Web-Seite die Geschwindigkeit beschränken, mit der die Benutzer Dateien abrufen können. Das kann sinnvoll sein, wenn Sie für das Hosting Ihrer Seite den Datenverkehr nach Menge bezahlen müssen. Fügen Sie am Anfang Ihres Scripts einen Aufruf der Funktion ein, der den Ablauf geeignet verzögert. Dieses Schema lässt sich verfeinern, indem die Verzögerungsdauer an die aktuelle Belastung des Web-Servers angepasst wird: Durch das Mitzählen der Seitenaufrufe kann ermittelt werden, wie viele Seiten pro Sekunde ausgeliefert werden, und dann sollte beim Überschreiten eines Grenzwertes die Verzögerungszeit erhöht werden.

* = Die genaue Ausgabe hängt natürlich davon, um welche Uhrzeit Sie das Beispiel aufgerufen wurde.

 

Beispiel für einen Countdown 

<?php


/* Definiere die Startzeit des Countdowns in Sekunden */
$intStartzeit = time();

/* Definiere die Dauer des Countdowns in Sekunden */
$intDauer = 4;

/* Berechne die Endzeit des Countdowns */
$intEndzeit = $intStartzeit + $intDauer;

/* Schleife für den Countdown */
while (time() < $intEndzeit) {
/* Berechne verbleibende Zeit in Sekunden */
$intVerbleibendeZeit = $intEndzeit - time();

/* Formatiere die verbleibende Zeit für die Anzeige */
$strAnzeigezeit = gmdate("H:i:s", $intVerbleibendeZeit);

/* Gib den Countdown aus */
echo "Countdown: $strAnzeigezeitn";

/* Warte eine Sekunde, bevor der nächste Schleifendurchlauf erfolgt */
sleep(1);
}

/* Gib eine Meldung aus, wenn der Countdown abgeschlossen ist */
echo "Countdown abgeschlossen!";
?>

 

Ausgabe:

Countdown: 00:00:04

Countdown: 00:00:03
Countdown: 00:00:02
Countdown: 00:00:01
Countdown abgeschlossen!

 

Erklärung des Countdowns Beispiel

Der gegebene PHP-Code implementiert einen Countdown, der eine bestimmte Zeit lang läuft und dann eine Meldung ausgibt, wenn der Countdown abgeschlossen ist.

  1. Startzeit definieren: Die Variable $intStartzeit speichert den Zeitpunkt, zu dem der Countdown gestartet wird, in Sekunden seit dem 1. Januar 1970 (Unix-Zeitstempel), der durch die Funktion time() erhalten wird.

  2. Dauer definieren: Die Variable $intDauer definiert die Dauer des Countdowns in Sekunden.

  3. Endzeit berechnen: Die Variable $intEndzeit berechnet den Zeitpunkt, zu dem der Countdown endet, indem sie die Startzeit ($intStartzeit) um die Dauer des Countdowns ($intDauer) erhöht.

  4. Countdown-Schleife: Eine while-Schleife wird gestartet, die so lange läuft, wie die aktuelle Zeit kleiner als die Endzeit ist. Innerhalb dieser Schleife wird der Countdown aktualisiert und ausgegeben.

    a. Verbleibende Zeit berechnen: Die Variable $intVerbleibendeZeit berechnet die verbleibende Zeit des Countdowns, indem sie die Endzeit ($intEndzeit) minus die aktuelle Zeit (time()) subtrahiert.

    b. Verbleibende Zeit formatieren: Die Funktion gmdate() formatiert die verbleibende Zeit ($intVerbleibendeZeit) in Stunden, Minuten und Sekunden ("H:i:s").

    c. Countdown ausgeben: Die verbleibende Zeit wird als Countdown ausgegeben.

    d. Warten: Die Funktion sleep(1) pausiert den Code für eine Sekunde, bevor der nächste Schleifendurchlauf erfolgt.

  5. Meldung bei Abschluss: Nachdem der Countdown beendet ist (wenn die Schleifenbedingung nicht mehr erfüllt ist), wird die Meldung „Countdown abgeschlossen!“ ausgegeben.

Der Code ermöglicht es, einen einfachen Countdown in PHP zu implementieren und auf der Konsole auszugeben.

Beispiel 3

<?php


/* Funktion: Überprüft, ob eine Datei erfolgreich heruntergeladen wurde, bevor sie weiterverarbeitet wird */
function heruntergeladeneDateiVerarbeiten(array $arrDateiPfad): void {
/* Schlafe für 5 Sekunden, um sicherzustellen, dass die Datei heruntergeladen wurde */
sleep(5);

/* Durchlaufe jedes Element im Array */
foreach ($arrDateiPfad as $strDateiPfad) {
/* Überprüfe, ob die Datei existiert */
if (file_exists($strDateiPfad)) {
/* Datei existiert, weiterverarbeiten */
echo "Die Datei '$strDateiPfad' wurde erfolgreich heruntergeladen und wird nun weiterverarbeitet." . PHP_EOL;
} else {
/* Datei existiert nicht, Fehlermeldung ausgeben */
echo "Fehler: Die Datei '$strDateiPfad' konnte nicht gefunden werden." . PHP_EOL;
}
}
}

/* Beispielaufruf der Funktion mit einem Array von Dateipfaden */
$arrDateiPfade = ["downloads/meineDatei1.txt", "downloads/meineDatei2.txt"];
heruntergeladeneDateiVerarbeiten($arrDateiPfade);

?>

Ausgabe: 

Fehler: Die Datei 'downloads/meineDatei1.txt' konnte nicht gefunden werden.

Fehler: Die Datei 'downloads/meineDatei2.txt' konnte nicht gefunden werden.

 

Der bereitgestellte PHP-Code definiert eine eigene Funktion namens heruntergeladeneDateiVerarbeiten, die dazu dient, zu überprüfen, ob eine Datei erfolgreich heruntergeladen wurde, bevor sie weiterverarbeitet wird.

Hier ist eine ausführliche Erklärung des Codes:

  1. Funktionsdefinition (function heruntergeladeneDateiVerarbeiten(array $arrDateiPfad): void):

    • Die Funktion wird mit dem Schlüsselwort function definiert.
    • Der Funktionsname lautet heruntergeladeneDateiVerarbeiten.
    • Sie erwartet ein Array von Dateipfaden als Parameter, der mit $arrDateiPfad bezeichnet wird.
    • Der Rückgabetyp der Funktion ist void, was bedeutet, dass die Funktion keinen Wert zurückgibt.
  2. Schlafe für 5 Sekunden (sleep(5)):

    • Mit der Funktion sleep(5) wird das Programm für 5 Sekunden pausiert. Dies dient dazu sicherzustellen, dass die Datei während dieses Zeitraums heruntergeladen wird.
  3. Dateiüberprüfung im Array (foreach ($arrDateiPfad as $strDateiPfad)):

    • Die Funktion durchläuft jedes Element im übergebenen Array von Dateipfaden mit einer foreach-Schleife.
    • Jeder Dateipfad wird in der Schleife als $strDateiPfad bezeichnet.
  4. Überprüfung der Dateiexistenz (file_exists($strDateiPfad)):

    • Für jeden Dateipfad wird überprüft, ob die Datei tatsächlich existiert, indem die Funktion file_exists() aufgerufen wird.
    • Wenn die Datei existiert, wird eine Erfolgsmeldung ausgegeben. Andernfalls wird eine Fehlermeldung ausgegeben.
  5. Ausgabe der Ergebnisse (echo):

  6. Beispielaufruf der Funktion:

    • Nach der Funktionsdefinition wird die Funktion mit einem Beispielaufruf verwendet.
    • Ein Array von Dateipfaden wird erstellt und an die Funktion übergeben.

 

Tags:

 

Artikel hinzufügen bei: