php

PHP'de usleep() işlevinin kullanımı

PHP'de usleep() işlevinin kullanımı
PHP'de betiğin yürütülmesini bir süre geciktirmek için iki işlev kullanılır. Bunlar usleep() ve uyku(). usleep() işlevi, betiğin yürütülmesini belirli mikrosaniyeler için geciktirmek için kullanılır. Negatif mikrosaniye değeri sağlanırsa bu işlev bir istisna oluşturabilir. Bu işlev, çağrıldığında da CPU döngüsünü tüketir. Bu işlevin PHP'de nasıl kullanılabileceği bu öğreticide gösterilmiştir.

Sözdizimi:

Bu işlevin sözdizimi aşağıda verilmiştir.

void usleep (int mikrosaniye)

Bu işlev, bu işlevin kullanıldığı yerde komut dosyasını geciktirmek için kullanılan işlev argümanları olarak mikrosaniye değerini alır. Bu işlev hiçbir şey döndürmez. Bu işlevin farklı kullanımları aşağıda çeşitli örnekler kullanılarak gösterilmiştir.

Örnek-1: 5 saniye beklemek için usleep() kullanımı

Aşağıdaki örnek, betikte 5 saniyelik gecikmeyi ayarlamak için usleep()'in nasıl kullanılabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun. geçerli tarih ve saati okumak için komut dosyasında date() işlevi kullanılır. usleep() işlevi, ilk date() işlevi yürütüldükten sonra çağrılır. 5 saniye, 5000000 mikrosaniyeye eşittir. Bu nedenle, gecikmeyi 5 saniyeye ayarlamak için usleep() argüman değeri olarak 5000000 kullanılır. Ardından, date() işlevi yeniden çağrılır.

//Geçerli tarih ve saati göster
echo tarih('d F, Y h:i:s a'). "
";
//Mesajı yazdır
echo "5 saniye bekleniyor..
";
//Komut dosyasının yürütülmesini 5 saniye geciktir
uyku(5000000);
//Geçerli tarih ve saati göster
echo tarih('d F, Y h:i:s a'). "
";
?>

Çıktı:


Komut dosyası, sunucudan çalıştırıldıktan sonra 5 saniye bekleyecektir. Çıktı, komut dosyasının yürütmeyi 05:32:05'te başlattığını ve komut dosyasının 05:32:11'de sonlandırıldığını gösterir. Yani, çıktıyı görüntülemeden önce 5 saniye geçti.

Örnek-2: Rastgele zamanları beklemek için usleep() kullanımı

Aşağıdaki örnek, rastgele sayıda gecikmeyi ayarlamak için usleep() ve Rand() işlevlerinin nasıl kullanılabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun. Komut dosyasının ilk date() işlevi mevcut sistem saatini okuyacaktır. Ardından, 1000000 ile 4000000 arasında bir sayı üretmek için Rand() işlevi kullanılır ve oluşturulan rastgele değer, usleep() işlevinin bağımsız değişken değeri olarak kullanılır. Üretilen rastgele sayı 1000000'e bölünecek ve saniye cinsinden gecikme süresini elde etmek için round() işlevinde kullanılacaktır. İkinci date() işlevi, usleep() işlevini yürüttükten sonra zaman değerini okumak için kullanılır.

// Geçerli saati göster
yankı tarihi('h:i:s a'). "
";
//Rastgele mikrosaniye değerini ayarla
$gecikme = Rand(1000000,4000000);
// Komut dosyasının yürütülmesini tanımlı saniyeler için geciktir
usleep($gecikme);
//Mikrosaniyeyi saniyeye çevir
$saniye = yuvarlak($gecikme/1000000);
//Mesajı yazdır
echo "$saniye saniye bekleniyor..
";
// Geçerli saati göster
yankı tarihi('h:i:s a'). "
";
?>

Çıktı:

Aşağıdaki çıktıya göre, script sunucuda yürütüldükten sonra 4 saniye bekledi. Çıktı, komut dosyasının yürütmeyi 05:35:40'ta başlattığını ve komut dosyasının 05:35:44'te sonlandırıldığını gösterir. Yani, senaryo 4 saniye ertelendi.

Örnek-3: Komut dosyasını 2 saniye sonra tekrarlayın

Aşağıdaki örnek, kullanıcının seçimine bağlı olarak 2 saniyelik gecikmeden sonra aynı komut dosyasının nasıl tekrarlanabileceğini gösterir. adlı bir HTML dosyası oluşturun form1.html değerini almak için aşağıdaki komut dosyası ile x ve n.

form1.html


usleep() işlevinin kullanımı
x değerini girin:

n değerini girin:

Formun verileri adlı PHP dosyasına gönderilecek güç.php hesaplamak için x güce n. Oluşturmak güç.php aşağıdaki komut dosyasıyla dosya. HTML formunun alan değerlerinin ayarlanıp ayarlanmadığını kontrol edecektir. Değerler doğru bir şekilde gönderilirse, x üzeri n kuvveti hesaplanır ve komut dosyası 2 saniye bekler. 2 saniye sonra bir uyarı kutusu görünecektir. Uyarı kutusunun Tamam düğmesini tıkladıktan sonra kullanıcıdan aynı görevi tekrarlamasını isteyen bir onay kutusu olan başka bir form görünecektir.

güç.php

//x ve n değerlerinin ayarlanıp ayarlanmadığını kontrol edin
if(isset($_POST['x']) && isset($_POST['n']))

$işaret = yanlış;
$x = $_POST['x'];
$n = $_POST['n'];
// x üzeri n'yi hesapla
$sonuç = pow($x,$n);
//Sonucu yazdır
echo "$x üzeri $n kuvveti $sonucudur
";
//Görevi tekrarlamak veya tekrarlamamak için formu görüntüle
Eko '
Görevi tekrar yap
';
//İki saniye bekleyin
uyku(2000000);
// Uyarıyı göster
echo "alert('2 saniye bekledi... ')";

Başka

Eğer(!isset($_POST['tamam']))
dahil('form1.html');
Başka

//Onay kutusu açıksa görevi tekrar et
if(isset($_POST['görev'] ))
if($_POST['görev'] == 'açık')
dahil('form1.html');
Başka
die("Komut dosyası sonlandırıldı.");

Başka
die("Komut dosyası sonlandırıldı.");


?>

Çıktı:

PHP betiğini sunucudan çalıştırdıktan sonra aşağıdaki form görünecektir. Çıktıda, x değeri için 4, n için 3 ayarlanır.

Formu gönderdikten sonra, komut dosyası hesaplayacaktır 43 ve uyarı kutusunu görüntülemeden önce 2 saniye bekleyin.


Başka bir değerin gücünü hesaplamak için önceki formu tekrar görüntüleme seçeneğini seçmek için aşağıdaki form görünecektir x ve n Tamam düğmesine bastıktan sonra.

Kullanıcı düğmeye basarsa TAMAM MI onay kutusunu seçmeden düğmesine basarsanız, komut dosyası aşağıdaki mesaj görüntülenerek sonlandırılacaktır.

Sonuç:

PHP betiği programlama amacıyla belirli bir süre için gecikme gerektirdiğinde, görevi yapmak için usleep() işlevi kullanılabilir. usleep() işlevi, bu öğreticide okuyucuların komut dosyasında nasıl gecikme oluşturulacağını bilmelerine yardımcı olmak için çeşitli örnekler kullanılarak açıklanmıştır. Sleep (), PHP'nin komut dosyasında geliştirilecek başka bir yerleşik işlevidir.

SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...