Dua fungsi terutama digunakan dalam PHP untuk menunda eksekusi skrip untuk beberapa waktu. Ini adalah usleep() dan sleep(). Fungsi usleep() digunakan untuk menunda eksekusi skrip untuk mikrodetik tertentu. Fungsi ini dapat mengeluarkan pengecualian jika nilai mikrodetik negatif disediakan. Fungsi ini menggunakan siklus CPU juga saat dipanggil. Bagaimana fungsi ini dapat digunakan dalam PHP telah ditunjukkan dalam tutorial ini.
Sintaksis:
Sintaks dari fungsi ini diberikan di bawah ini.
void usleep (int mikrodetik)Fungsi ini mengambil nilai mikrodetik sebagai argumen fungsi yang digunakan untuk menunda skrip tempat fungsi ini digunakan. Fungsi ini tidak menghasilkan apa-apa. Penggunaan yang berbeda dari fungsi ini ditunjukkan di bawah ini dengan menggunakan berbagai contoh.
Contoh-1: Gunakan usleep() untuk menunggu 5 detik
Contoh berikut menunjukkan bagaimana usleep() dapat digunakan untuk mengatur penundaan selama 5 detik dalam skrip. Buat file PHP dengan skrip berikut:. date() fungsi digunakan dalam skrip untuk membaca tanggal dan waktu saat ini. fungsi usleep() dipanggil setelah menjalankan fungsi date() pertama. 5 detik sama dengan 5000000 mikrodetik. Jadi, 5000000 digunakan sebagai nilai argumen usleep() untuk mengatur penundaan selama 5 detik. Selanjutnya, fungsi date() dipanggil lagi.
//Menampilkan tanggal dan waktu saat initanggal echo('d F, Y h:i:s a'). "
";
//Cetak pesan
echo "Menunggu 5 detik..
";
//Menunda eksekusi skrip selama 5 detik
tidur(5000000);
//Menampilkan tanggal dan waktu saat ini
tanggal echo('d F, Y h:i:s a'). "
";
?>
Keluaran
Script akan menunggu selama 5 detik setelah dijalankan dari server. Output menunjukkan bahwa skrip memulai eksekusi pada 05:32:05, dan skrip berakhir pada 05:32:11. Jadi, 5 detik telah berlalu sebelum menampilkan output.
Contoh-2: Penggunaan usleep() untuk menunggu waktu acak
Contoh berikut menunjukkan bagaimana fungsi usleep() dan Rand() dapat digunakan untuk mengatur penundaan untuk beberapa kali acak random. Buat file PHP dengan skrip berikut:. Fungsi tanggal () pertama dari skrip akan membaca waktu sistem saat ini. Selanjutnya, fungsi rand() digunakan untuk menghasilkan angka antara 1000000 dan 4000000, dan nilai acak yang dihasilkan akan digunakan sebagai nilai argumen dari fungsi usleep(). Angka acak yang dihasilkan akan dibagi dengan 1000000 dan digunakan dalam fungsi round() untuk mendapatkan waktu tunda dalam hitungan detik. Fungsi date() kedua digunakan untuk membaca nilai waktu setelah menjalankan fungsi usleep().
//Menampilkan waktu saat initanggal echo('h:i:s a'). "
";
//Tetapkan nilai mikrodetik acak
$penundaan = rand(1000000.400000);
//Menunda eksekusi skrip untuk detik yang ditentukan
usleep($penundaan);
//Ubah mikrodetik menjadi detik
$detik = putaran($penundaan/1000000);
//Cetak pesan
echo "Menunggu $detik detik..
";
//Menampilkan waktu saat ini
tanggal echo('h:i:s a'). "
";
?>
Keluaran
Menurut output berikut, skrip menunggu selama 4 detik setelah dijalankan di server. Output menunjukkan bahwa skrip memulai eksekusi pada 05:35:40, dan skrip berakhir pada 05:35:44. Jadi, skrip telah tertunda selama 4 detik.
Contoh-3: Ulangi skrip setelah 2 detik
Contoh berikut menunjukkan bagaimana skrip yang sama dapat diulang setelah 2 detik penundaan berdasarkan pilihan pengguna. Buat file HTML bernama formulir1.html dengan skrip berikut untuk mengambil nilai x dan tidak.
formulir1.html
Masukkan nilai x :
Masukkan nilai n :
Data formulir akan dikirimkan ke dalam file PHP bernama kekuasaan.php untuk menghitung x ke pangkat n. Buat kekuasaan.php file dengan skrip berikut:. Ini akan memeriksa nilai bidang dari formulir HTML diatur atau tidak. Jika nilai dikirimkan dengan benar, maka x ke pangkat tidak akan dihitung, dan skrip akan menunggu selama 2 detik. Kotak peringatan akan muncul setelah 2 detik. Formulir lain dengan kotak centang akan muncul untuk meminta pengguna mengulangi tugas yang sama setelah mengklik tombol OK dari kotak peringatan.
kekuasaan.php
//Periksa nilai x dan n disetel atau tidakif(isset($_POST['x']) && isset($_POST['n']))
$bendera = salah;
$x = $_POST['x'];
$n = $_POST['n'];
//Hitung x ke pangkat n
$hasil = pow($x,$n);
//Cetak hasilnya
echo "$x pangkat $n adalah $hasil
";
//Menampilkan formulir untuk mengulang tugas lagi atau tidak
gema '
Kerjakan tugas lagi
';
//Tunggu dua detik
tidur(2000000);
//Tampilkan peringatan
echo "alert('Menunggu 2 detik...')";
lain
jika(!isset($_POST['ok']))
termasuk('form1.html');
lain
//Ulangi tugas lagi jika kotak centang aktif
if(isset($_POST['tugas'] ))
if($_POST['tugas'] == 'aktif')
termasuk('form1.html');
lain
die("Skrip dihentikan.");
lain
die("Skrip dihentikan.");
?>
Keluaran
Form berikut akan muncul setelah menjalankan script PHP dari server. Dalam output, 4 ditetapkan untuk nilai x, dan 3 ditetapkan untuk n.
Setelah mengirimkan formulir, skrip akan menghitung 4³dan tunggu selama 2 detik sebelum menampilkan kotak peringatan.
Bentuk berikut akan muncul untuk memilih opsi untuk menampilkan kembali bentuk sebelumnya untuk menghitung kekuatan nilai lain dari x dan n setelah menekan tombol OK.
Jika pengguna menekan tombol baik tombol tanpa memilih kotak centang, skrip akan dihentikan dengan menampilkan pesan berikut:.
Kesimpulan
Ketika script PHP membutuhkan delay untuk jangka waktu tertentu untuk tujuan pemrograman, maka fungsi usleep() dapat digunakan untuk melakukan tugas tersebut. Fungsi usleep() telah dijelaskan dalam tutorial ini dengan menggunakan berbagai contoh untuk membantu pembaca mengetahui cara menghasilkan penundaan dalam skrip. Sleep () adalah fungsi bawaan PHP lainnya untuk dikembangkan dalam skrip.