To funktioner bruges hovedsageligt i PHP til at forsinke udførelsen af scriptet i nogen tid. Disse er usleep () og sleep (). Usleep () -funktionen bruges til at forsinke udførelsen af scriptet i bestemte mikrosekunder. Denne funktion kan give en undtagelse, hvis den negative mikrosekundværdi er angivet. Denne funktion forbruger CPU-cyklussen, også når den kaldes. Hvordan denne funktion kan bruges i PHP har vist i denne vejledning.
Syntaks:
Syntaksen for denne funktion er angivet nedenfor.
ugyldigt usleep (int mikrosekunder)Denne funktion tager mikrosekundværdien som funktionsargumenter, der bruges til at forsinke scriptet, hvor denne funktion bruges. Denne funktion returnerer intet. De forskellige anvendelser af denne funktion vises nedenfor ved hjælp af forskellige eksempler.
Eksempel 1: Brug af usleep () til at vente 5 sekunder
Følgende eksempel viser, hvordan usleep () kan bruges til at indstille forsinkelsen til 5 sekunder i scriptet. Opret en PHP-fil med følgende script. dato () funktion bruges i scriptet til at læse den aktuelle dato og tid. usleep () -funktion kaldes efter udførelse af den første dato () -funktion. 5 sekunder er lig med 5000000 mikrosekunder. Så 5000000 bruges som værdien usleep () til at indstille forsinkelsen i 5 sekunder. Derefter kaldes funktionen date () igen.
// Vis den aktuelle dato og tidekko dato ('d F, Y h: i: s a'). "
";
// Udskriv meddelelsen
ekko "Venter i 5 sekunder ..
";
// Forsink udførelsen af scriptet i 5 sekunder
sove (5000000);
// Vis den aktuelle dato og tid
ekko dato ('d F, Y h: i: s a'). "
";
?>
Produktion
Scriptet venter i 5 sekunder, efter det er udført fra serveren. Outputtet viser, at scriptet startede udførelsen kl. 05:32:05, og scriptet blev afsluttet kl. 05:32:11. Så der er gået 5 sekunder, før output vises.
Eksempel 2: Brug af usleep () til at vente på tilfældige tider
Følgende eksempel viser, hvordan usleep () og rand () -funktioner kan bruges til at indstille forsinkelsen til det tilfældige antal gange. Opret en PHP-fil med følgende script. Den første dato () -funktion af scriptet læser den aktuelle systemtid. Derefter bruges funktionen rand () til at generere et tal mellem 1000000 og 4000000, og den genererede tilfældige værdi vil blive brugt som argumentværdien for usleep () -funktionen. Det genererede tilfældige tal divideres med 1000000 og bruges i funktionen round () for at få forsinkelsestiden i sekunder. Den anden dato () funktion bruges til at læse tidsværdien efter udførelse af usleep () funktionen.
// Vis det aktuelle klokkeslætekko dato ('h: i: s a'). "
";
// Indstil værdien for tilfældige mikrosekunder
$ forsinkelse = rand (1000000,4000000);
// Forsink udførelsen af scriptet i definerede sekunder
usleep ($ forsinkelse);
// Konverter mikrosekunder til sekunder
$ sekunder = runde ($ forsinkelse / 1000000);
// Udskriv meddelelsen
ekko "Venter på $ sekunder sekunder ..
";
// Vis det aktuelle klokkeslæt
ekko dato ('h: i: s a'). "
";
?>
Produktion
I henhold til følgende output ventede scriptet i 4 sekunder efter udførelse på serveren. Outputtet viser, at scriptet startede udførelsen kl 05:35:40, og scriptet afsluttedes kl 05:35:44. Så scriptet er blevet forsinket i 4 sekunder.
Eksempel 3: Gentag scriptet efter 2 sekunder
Følgende eksempel viser, hvordan det samme script kan gentages efter 2 sekunders forsinkelse baseret på brugerens valg. Opret en HTML-fil med navnet form1.html med følgende script til at tage værdien af x og n.
form1.html
Indtast værdien af x:
Indtast værdien af n:
Formularens data indsendes i den navngivne PHP-fil strøm.php at beregne x til magt n. Opret strøm.php fil med følgende script. Det kontrollerer feltværdierne for HTML-formularen er indstillet eller ej. Hvis værdierne er korrekt indsendt, så x til magten n beregnes, og scriptet venter i 2 sekunder. En advarselsboks vises efter 2 sekunder. En anden form med et afkrydsningsfelt vises for at bede brugeren om at gentage den samme opgave efter at have klikket på OK-knappen i alarmfeltet.
strøm.php
// Kontroller, at værdierne for x og n er indstillet eller ejhvis (isset ($ _ POST ['x']) && isset ($ _ POST ['n']))
$ flag = falsk;
$ x = $ _POST ['x'];
$ n = $ _POST ['n'];
// Beregn x til magt n
$ resultat = pow ($ x, $ n);
// Udskriv resultatet
ekko "$ x til magten $ n er $ resultat
";
// Vis formularen for at gentage opgaven igen eller ej
ekko '
Udfør opgaven igen
';
// Vent i to sekunder
sove (2000000);
// Vis advarslen
ekko "alarm ('Ventede i 2 sekunder ...')";
andet
hvis(!isset ($ _ POST ['ok']))
inkluderer ('form1.html ');
andet
// Gentag opgaven igen, hvis afkrydsningsfeltet er aktiveret
hvis (isset ($ _ POST ['opgave']))
hvis ($ _ POST ['task'] == 'on')
inkluderer ('form1.html ');
andet
die ("Scriptet er afsluttet.");
andet
die ("Scriptet er afsluttet.");
?>
Produktion
Følgende formular vises efter kørsel af PHP-scriptet fra serveren. I output er 4 indstillet til værdien af x, og 3 er indstillet til n.
Efter indsendelse af formularen beregnes scriptet 4³og vent i 2 sekunder, før du får vist advarselsboksen.
Følgende formular vises for at vælge muligheden for at få vist den forrige formular igen for at beregne effekten af en anden værdi på x og n efter at have trykket på OK-knappen.
Hvis brugeren trykker på Okay uden at markere afkrydsningsfeltet, afsluttes scriptet ved at vise følgende meddelelse.
Konklusion
Når PHP-scriptet kræver forsinkelse i en bestemt periode til programmeringsformål, kan usleep () -funktionen bruges til at udføre opgaven. Usleep () -funktionen er blevet forklaret i denne vejledning ved hjælp af forskellige eksempler for at hjælpe læserne med at vide, hvordan man genererer en forsinkelse i scriptet. Sleep () er en anden indbygget funktion af PHP, der skal udvikles i scriptet.