Două funcții sunt utilizate în principal în PHP pentru a întârzia execuția scriptului pentru o perioadă de timp. Acestea sunt usleep () și sleep (). Funcția usleep () este utilizată pentru a întârzia execuția scriptului pentru microsecunde specifice. Această funcție poate genera o excepție dacă este furnizată valoarea negativă a microsecundelor. Această funcție consumă ciclul CPU și atunci când este apelată. Modul în care această funcție poate fi utilizată în PHP a arătat în acest tutorial.
Sintaxă:
Sintaxa acestei funcții este dată mai jos.
nul usleep (int microsecunde)Această funcție ia valoarea microsecundelor ca argumente ale funcției utilizate pentru a întârzia scriptul în care este utilizată această funcție. Această funcție nu returnează nimic. Diferitele utilizări ale acestei funcții sunt prezentate mai jos folosind diverse exemple.
Exemplu-1: Utilizarea usleep () pentru a aștepta 5 secunde
Următorul exemplu arată cum se poate utiliza usleep () pentru a seta întârzierea pentru 5 secunde în script. Creați un fișier PHP cu următorul script. funcția date () este utilizată în script pentru a citi data și ora curente. funcția usleep () este apelată după executarea primei funcții date (). 5 secunde este egal cu 5000000 microsecunde. Deci, 5000000 este folosit ca valoarea argumentului usleep () pentru a seta întârzierea pentru 5 secunde. Apoi, funcția date () este apelată din nou.
// Afișează data și ora curentedata ecoului ('d F, Y h: i: s a'). "
";
// Imprimați mesajul
ecou „Se așteaptă 5 secunde ..
";
// Întârziți execuția scriptului timp de 5 secunde
usleep (5000000);
// Afișează data și ora curente
data ecoului ('d F, Y h: i: s a'). "
";
?>
Ieșire
Scriptul va aștepta 5 secunde după executarea acestuia de pe server. Rezultatul arată că scriptul a început execuția la 05:32:05 dimineața, iar scriptul s-a încheiat la 05:32:11 am. Deci, au trecut 5 secunde înainte de afișarea ieșirii.
Exemplul-2: Utilizarea usleep () pentru a aștepta timpuri aleatorii
Următorul exemplu arată cum funcțiile usleep () și rand () pot fi utilizate pentru a seta întârzierea pentru numărul aleatoriu de ori. Creați un fișier PHP cu următorul script. Prima funcție date () a scriptului va citi ora curentă a sistemului. Apoi, funcția rand () este utilizată pentru a genera un număr între 1000000 și 4000000, iar valoarea aleatorie generată va fi utilizată ca valoare argument a funcției usleep (). Numărul aleatoriu generat va fi împărțit la 1000000 și utilizat în funcția round () pentru a obține timpul de întârziere în secunde. A doua funcție date () este utilizată pentru a citi valoarea timpului după executarea funcției usleep ().
// Afișați ora curentădata ecoului ('h: i: s a'). "
";
// Setați valoarea aleatorie a microsecundelor
$ întârziere = rand (1000000,4000000);
// Întârziți execuția scriptului pentru secunde definite
usleep ($ întârziere);
// Convertiți microsecundele în secunde
$ secunde = rundă ($ întârziere / 1000000);
// Imprimați mesajul
ecou „Se așteaptă $ secunde secunde ..
";
// Afișați ora curentă
data ecoului ('h: i: s a'). "
";
?>
Ieșire
Conform următoarei ieșiri, scriptul a așteptat 4 secunde după executarea în server. Rezultatul arată că scriptul a început execuția la 05:35:40 și că scriptul s-a încheiat la 05:35:44. Deci, scriptul a fost întârziat cu 4 secunde.
Exemplu-3: Repetați scriptul după 2 secunde
Următorul exemplu arată cum același script poate fi repetat după 2 secunde de întârziere pe baza selecției utilizatorului. Creați un fișier HTML numit forma1.html cu următorul script pentru a lua valoarea X și n.
forma1.html
Introduceți valoarea lui x:
Introduceți valoarea lui n:
Datele formularului vor fi trimise în fișierul PHP numit putere.php pentru a calcula x la puterea n. Creați putere.php fișier cu următorul script. Se va verifica dacă valorile câmpului formularului HTML sunt setate sau nu. Dacă valorile sunt trimise corect, atunci x la putere n va fi calculat, iar scriptul va aștepta 2 secunde. După 2 secunde va apărea o casetă de alertă. Va apărea un alt formular cu o casetă de selectare pentru a cere utilizatorului să repete aceeași sarcină după ce faceți clic pe butonul OK din caseta de alertă.
putere.php
// Verificați dacă valorile lui x și n sunt setate sau nuif (isset ($ _ POST ['x']) && isset ($ _ POST ['n']))
$ steag = fals;
$ x = $ _POST ['x'];
$ n = $ _POST ['n'];
// Calculați x la puterea n
$ result = pow ($ x, $ n);
// Imprimați rezultatul
ecou "$ x la puterea $ n este $ rezultat
";
// Afișați formularul pentru a repeta sau nu sarcina
ecou '
Faceți din nou sarcina
';
// Așteptați două secunde
usleep (2000000);
// Afișați alerta
echo "alert ('Așteptat 2 secunde ...')";
altceva
dacă(!isset ($ _ POST ['ok'])))
include ('formular1.html ');
altceva
// Repetați din nou sarcina dacă caseta de selectare este activată
if (isset ($ _ POST ['task'])))
if ($ _ POST ['task'] == 'on')
include ('formular1.html ');
altceva
die („Scriptul este terminat.");
altceva
die („Scriptul este terminat.");
?>
Ieșire
Următorul formular va apărea după executarea scriptului PHP de pe server. În ieșire, 4 este setat pentru valoarea lui x și 3 este setat pentru n.
După trimiterea formularului, scriptul va calcula 4³și așteptați 2 secunde înainte de a afișa caseta de alertă.
Următorul formular va apărea pentru a selecta opțiunea de a afișa din nou formularul anterior pentru a calcula puterea unei alte valori de x și n după apăsarea butonului OK.
Dacă utilizatorul apasă pe O.K fără a bifa caseta de selectare, scriptul va fi terminat prin afișarea următorului mesaj.
Concluzie
Când scriptul PHP necesită întârziere pentru o anumită perioadă în scopuri de programare, atunci funcția usleep () poate fi utilizată pentru a efectua sarcina. Funcția usleep () a fost explicată în acest tutorial utilizând diverse exemple pentru a ajuta cititorii să știe cum să genereze o întârziere în script. Sleep () este o altă funcție încorporată a PHP de dezvoltat în script.