php

Funktsiooni usleep () kasutamine PHP-s

Funktsiooni usleep () kasutamine PHP-s

PHP-s kasutatakse peamiselt kahte funktsiooni, et skripti käivitamine mõnda aega edasi lükata. Need on magama () ja magama (). Funktsiooni usleep () kasutatakse skripti käivitamise edasilükkamiseks konkreetsete mikrosekundite jaoks. See funktsioon võib tekitada erandi, kui on antud negatiivne mikrosekundiline väärtus. See funktsioon kulutab protsessori tsüklit ka siis, kui seda kutsutakse. Selle funktsiooni kasutamine PHP-s on näidatud selles õpetuses.

Süntaks:

Selle funktsiooni süntaks on toodud allpool.

tühistab meid magama (int mikrosekundites)

See funktsioon võtab mikrosekundite väärtuse funktsiooni argumentidena, mida kasutatakse skripti viivitamiseks seal, kus seda funktsiooni kasutatakse. See funktsioon ei tagasta midagi. Selle funktsiooni erinevad kasutusalad on toodud allpool, kasutades erinevaid näiteid.

Näide 1: Usleep () kasutamine 5 sekundi ootamiseks

Järgmine näide näitab, kuidas usleep () abil saab skriptis viie sekundi viivituse seada. Looge järgmise skriptiga PHP-fail. date () funktsiooni kasutatakse skriptis praeguse kuupäeva ja kellaaja lugemiseks. funktsiooni usleep () kutsutakse pärast esimese kuupäeva () funktsiooni käivitamist. 5 sekundit võrdub 5000000 mikrosekundiga. Niisiis, viie sekundi viivituse määramiseks kasutatakse väärtust usleep () 5000000. Järgmisena kutsutakse funktsioon date () uuesti.

// Kuva praegune kuupäev ja kellaaeg
kajakuupäev ('d F, Y h: i: s a'). "
";
// Sõnumi printimine
kaja "Ootan 5 sekundit ..
";
// Viivitame skripti täitmisega 5 sekundit
uni (5000000);
 
// Kuva praegune kuupäev ja kellaaeg
kajakuupäev ('d F, Y h: i: s a'). "
";
?>

Väljund

Pärast serverist käivitamist ootab skript 5 sekundit. Väljund näitab, et skript alustas täitmist kell 05:32:05 ja skript lõpetati kell 05:32:11. Niisiis, enne väljundi kuvamist on möödas 5 sekundit.

Näide 2: usleep () kasutamine juhuslike aegade ootamiseks

Järgmine näide näitab, kuidas funktsioone usleep () ja rand () saab kasutada juhusliku arvu kordade viivituse seadmiseks. Looge järgmise skriptiga PHP-fail. Skripti esimene kuupäeva () funktsioon loeb praeguse süsteemi kellaaja. Järgmisena kasutatakse funktsiooni rand (), et genereerida arv vahemikus 1000000 kuni 4000000, ja genereeritud juhuslikku väärtust kasutatakse funktsiooni usleep () argumendi väärtusena. Loodud juhuslik arv jagatakse 1000000-ga ja seda kasutatakse funktsioonis round (), et saada viivitusaeg sekundites. Teist kuupäeva () funktsiooni kasutatakse ajaväärtuse lugemiseks pärast funktsiooni usleep () käivitamist.

// Kuva praegune kellaaeg
kajakuupäev ('h: i: s a'). "
";
// Määra juhuslik mikrosekundite väärtus
$ delay = rand (1000000,4000000);
// Viivitage skripti käivitamine määratletud sekunditeks
usleep ($ viivitus);
// Teisenda mikrosekundid sekunditeks
$ sekundit = ümmargune ($ delay / 1000000);
// Sõnumi printimine
kaja "$ sekundit sekundit ootan ..
";
// Kuva praegune kellaaeg
kajakuupäev ('h: i: s a'). "
";
?>

Väljund

Järgmise väljundi järgi ootas skript pärast serveris käivitamist 4 sekundit. Väljund näitab, et skript alustas hukkamist kell 05:35:40 ja skript lõpetati kell 05:35:44. Niisiis, skript on edasi lükatud 4 sekundit.

Näide 3: korrake skripti 2 sekundi pärast

Järgmine näide näitab, kuidas sama skripti saab kasutaja valiku põhjal 2 sekundilise viivituse järel korrata. Looge HTML-fail nimega vorm1.HTML järgmise skripti abil väärtuse x ja n.

vorm1.HTML




Funktsiooni usleep () kasutamine



Sisestage x väärtus:

Sisestage n väärtus:




Vormi andmed saadetakse nimetatud PHP-faili võim.php x arvutamiseks võimsuseks n. Looge võim.php fail järgmise skriptiga. See kontrollib, kas HTML-vormi välja väärtused on seatud või mitte. Kui väärtused on õigesti esitatud, siis x täisarvuni n arvutatakse ja skript ootab 2 sekundit. 2 sekundi pärast kuvatakse hoiatuskast. Kuvatakse teine ​​märkeruuduga vorm, mis palub kasutajal sama ülesannet korrata pärast hoiatuskasti nupul OK klõpsamist.

võim.php

// Kontrollige, kas x ja n väärtused on seatud või mitte
if (isset ($ _ POST ['x']) && isset ($ _ POST ['n']))

$ lipp = vale;
$ x = $ _POST ['x'];
$ n = $ _POST ['n'];
// Arvutage x võimsuseks n
$ tulemus = pow ($ x, $ n);
// Prindi tulemus
kaja "$ x astmele $ n on $ tulemus
";
// Kuvage vorm ülesande uuesti kordamiseks või mitte
kaja '
Tehke ülesanne uuesti
";
// Oodake kaks sekundit
uinuma (2000000);
// Kuva hoiatus
kaja "alarm ('Oodatud 2 sekundit ...')";

muud

kui (!isset ($ _ POST ['ok']))
hulka ('vorm1.html ');
muud

// Korrake toimingut uuesti, kui märkeruut on sisse lülitatud
kui (isset ($ _ POST ['ülesanne'])))
kui ($ _ POST ['ülesanne'] == 'sees')
hulka ('vorm1.html ');
muud
die ("Skript on lõpetatud.");

muud
die ("Skript on lõpetatud.");


?>

Väljund

Järgmine vorm ilmub pärast PHP-skripti käivitamist serverist. Väljundis on 4 väärtuseks x ja 3 väärtuseks n.


Pärast vormi esitamist arvutab skriptja oodake 2 sekundit enne hoiatuskasti kuvamist.

Ilmub järgmine vorm, et valida suvand eelmise vormi uuesti kuvamiseks, et arvutada teise väärtuse väärtus x ja n pärast nupu OK vajutamist.


Kui kasutaja vajutab klahvi Okei nupp märkeruutu valimata, lõpetatakse skript järgmise teate kuvamisega.

Järeldus

Kui PHP-skript nõuab programmeerimise eesmärgil teatud perioodi viivitust, saab ülesande täitmiseks kasutada funktsiooni usleep (). Funktsioon usleep () on selles õpetuses lahti seletatud, kasutades erinevaid näiteid, et aidata lugejal teada saada, kuidas skriptis viivitust tekitada. Sleep () on veel üks PHP sisseehitatud funktsioon, mida skriptis arendada.

SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...