To funksjoner brukes hovedsakelig i PHP for å forsinke utførelsen av skriptet i noen tid. Disse er usleep () og sleep (). Usleep () -funksjonen brukes til å forsinke utførelsen av skriptet for spesifikke mikrosekunder. Denne funksjonen kan gi unntak hvis den negative mikrosekundverdien er gitt. Denne funksjonen bruker CPU-syklusen også når den blir ringt. Hvordan denne funksjonen kan brukes i PHP har vist i denne veiledningen.
Syntaks:
Syntaksen til denne funksjonen er gitt nedenfor.
ugyldig usleep (int mikrosekunder)Denne funksjonen tar mikrosekundeverdien som funksjonsargumenter som brukes til å forsinke skriptet der denne funksjonen brukes. Denne funksjonen returnerer ingenting. De forskjellige bruken av denne funksjonen er vist nedenfor ved å bruke forskjellige eksempler.
Eksempel 1: Bruk av usleep () for å vente i 5 sekunder
Følgende eksempel viser hvordan usleep () kan brukes til å stille forsinkelsen i 5 sekunder i skriptet. Opprett en PHP-fil med følgende skript. dato () -funksjonen brukes i skriptet for å lese gjeldende dato og klokkeslett. usleep () -funksjonen kalles etter å ha utført den første datoen () -funksjonen. 5 sekunder er lik 5000000 mikrosekunder. Så brukes 5000000 som argumentverdien usleep () for å sette forsinkelsen i 5 sekunder. Deretter kalles funksjonen dato () igjen.
// Vis gjeldende dato og klokkeslettekkodato ('d F, Y h: i: s a'). "
";
// Skriv ut meldingen
ekko "Venter i 5 sekunder ..
";
// Forsink utførelsen av skriptet i 5 sekunder
sove (5000000);
// Vis gjeldende dato og klokkeslett
ekkodato ('d F, Y h: i: s a'). "
";
?>
Produksjon
Skriptet venter i 5 sekunder etter at det er kjørt fra serveren. Utgangen viser at skriptet startet kjøringen kl 05:32:05, og skriptet ble avsluttet kl 05:32:11. Så det har gått 5 sekunder før utgangen vises.
Eksempel 2: Bruk av usleep () for å vente på tilfeldige tider
Følgende eksempel viser hvordan usleep () og rand () -funksjonene kan brukes til å stille forsinkelsen for det tilfeldige antall ganger. Opprett en PHP-fil med følgende skript. Den første datoen () -funksjonen til skriptet vil lese gjeldende systemtid. Deretter brukes rand () -funksjonen til å generere et tall mellom 1000000 og 4000000, og den genererte tilfeldige verdien vil bli brukt som argumentverdien for usleep () -funksjonen. Det genererte tilfeldige tallet blir delt på 1000000 og brukes i runde () -funksjonen for å få forsinkelsestiden i sekunder. Den andre date () -funksjonen brukes til å lese tidsverdien etter at usleep () -funksjonen er utført.
// Vis gjeldende tidekkodato ('h: i: s a'). "
";
// Still inn den tilfeldige mikrosekundverdien
$ forsinkelse = rand (1000000,4000000);
// Forsink utførelsen av skriptet i definerte sekunder
usleep ($ forsinkelse);
// Konverter mikrosekundene til sekunder
$ sekunder = runde ($ forsinkelse / 1000000);
// Skriv ut meldingen
ekko "Venter i $ sekunder sekunder ..
";
// Vis gjeldende tid
ekkodato ('h: i: s a'). "
";
?>
Produksjon
I følge følgende utdata ventet skriptet i 4 sekunder etter kjøring i serveren. Utgangen viser at skriptet startet kjøringen kl 05:35:40, og skriptet ble avsluttet kl 05:35:44. Så manuset er forsinket i 4 sekunder.
Eksempel 3: Gjenta skriptet etter 2 sekunder
Følgende eksempel viser hvordan det samme skriptet kan gjentas etter 2 sekunders forsinkelse basert på brukerens valg. Opprett en HTML-fil med navnet form1.html med følgende skript for å ta verdien av x og n.
form1.html
Skriv inn verdien av x:
Skriv inn verdien av n:
Skjemaets data vil bli sendt inn i PHP-filen som heter makt.php for å beregne x til kraften n. Opprett makt.php filen med følgende skript. Det vil sjekke feltverdiene til HTML-skjemaet er angitt eller ikke. Hvis verdiene er riktig sendt, så x til kraften n vil bli beregnet, og manuset vil vente i 2 sekunder. En varselboks vises etter 2 sekunder. Et annet skjema med en avkrysningsrute vises for å be brukeren gjenta den samme oppgaven etter å ha klikket på OK-knappen i varselboksen.
makt.php
// Kontroller at verdiene til x og n er angitt eller ikkehvis (isset ($ _ POST ['x']) && isset ($ _ POST ['n']))
$ flagg = falsk;
$ x = $ _POST ['x'];
$ n = $ _POST ['n'];
// Beregn x til kraften n
$ resultat = pow ($ x, $ n);
// Skriv ut resultatet
ekko "$ x til makten $ n er $ resultat
";
// Vis skjemaet for å gjenta oppgaven igjen eller ikke
ekko '
Gjør oppgaven igjen
';
// Vent i to sekunder
sove (2000000);
// Vis varselet
ekko "varsel ('Ventet i 2 sekunder ...')";
ellers
hvis(!isset ($ _ POST ['ok']))
inkluderer ('form1.html ');
ellers
// Gjenta oppgaven igjen hvis avkrysningsruten er på
hvis (isset ($ _ POST ['oppgave']))
if ($ _ POST ['task'] == 'on')
inkluderer ('form1.html ');
ellers
die ("Skriptet er avsluttet.");
ellers
die ("Skriptet er avsluttet.");
?>
Produksjon
Følgende skjema vises etter at du har kjørt PHP-skriptet fra serveren. I utgangen er 4 satt til verdien av x, og 3 er satt til n.
Etter at skjemaet er sendt inn, beregnes skriptet 4³og vent i 2 sekunder før du viser varselboksen.
Følgende skjema vises for å velge alternativet for å vise forrige skjema igjen for å beregne effekten av en annen verdi av x og n etter å ha trykket på OK-knappen.
Hvis brukeren trykker på OK uten å velge avkrysningsruten, vil skriptet avsluttes ved å vise følgende melding.
Konklusjon
Når PHP-skriptet krever forsinkelse for en bestemt periode for programmeringsformål, kan usleep () -funksjonen brukes til å utføre oppgaven. Usleep () -funksjonen er forklart i denne opplæringen ved å bruke forskjellige eksempler for å hjelpe leserne å vite hvordan de kan generere en forsinkelse i skriptet. Sleep () er en annen innebygd funksjon av PHP som skal utvikles i skriptet.