PHP rastgele sayı üretme

____________________________________________________________________

Java ME’de rastgele sayı üretme ile ilgili yazmıştım. Şimdi de PHP ile rastgele bir sayı üretmem gerekti. Temamda üst kısımda gösterilen rastgele resimlerin seçilmesi için Yakuter Rastgele Resim Eklentisi‘nin kodlarını temanın function.php dosyasına ekleyerek kullanmıştım. Bu kodlar temanın bulunduğu klasöre bağlantı açıp içindeki dosyaları liste şeklinde alıp bunlardan birinin yolunu String olarak dönüyordu.

Blogda da bir süredir bir yavaşlık vardı, örneğin sayfaların 1 saniyeden hızlı oluşturulduğunu görmemiştim yakın zamanlarda. Yüksek hitli bir forumun olduğu sunucuda bu aslında çok da anormal değildi ama FireStats eklentisini kapattığımda bile bu durum değişmiyordu. E.Ali’nin WordPress tabanlı siteniz yavaşlamaktan nasıl korunur yazısından niyetlenip biraz iyileştirme niyetiyle bakınayım dedim.

Bakınırken temanın resim klasöründeki dosya erişimlerinin yavaşlamaya sebep olup olmayacağını merak ettim. Bunun için de resim klasöründen resim seçme kodunu devre dışı bıraktım. Tabii ki beklediğim gibi hiçbir iyileşme olmadı. 😀 Yine de sunucunun resim klasörüne erişim ile falan uğraşmak yerine rastgele sayı üretip kullanmanın daha iyi olabileceğini düşündüm, çünkü hali hazırda işlemcilerin bile buna donanımsal desteği var. Bunun için de PHP’nin basit rastgele sayı üretme rand() fonksiyonunu öğrendim.

Fonksiyon Java ME’de rastgele sayı üretmekten daha basit ve sadece iki şekilde kullanılabiliyor.

  1. int rand ( void ) şeklinde ki, 0’dan getrandmax() değerine kadar olabilecek Int değerinde bir rastgele sayı üretiyor. getrandmax() ise döndürülebilecek en büyük rastgele sayı değeri olup sisteme göre değişebiliyor.
  2. int rand ( int $min , int $maks ) Bu da belirlediğiniz bir alt sınır sayısı ve bir üst sınır sayısı arasında bir sayıyı dönüyor. int $min alt sınır, $maks ise üst sınır Int sayımız oluyor, örneğin rand(10, 78) gibi.

Bu şekilde ürettiğim rastgele sayıyı resim yolunun sonuna ekleyip, bu sayıdan sonra da bir .jpg yazarak dosyaların rastgele sayı ile seçilmesini sağladım. Resimlerin isimleri de karışıktı, bunları da Total Commander ile [C].[E] şeklinde yani sayı.jpg şeklinde sıralaytp isimlendirdim. Bana bir avantajı oldu mu, şu an için olmadı. Üst kısım resim klasöründe 78 kadar resim var, ama ileride bu sayıyı arttırırsam işe yarayabilir sanırım. Özetle fonksiyon şöyle:

function rastgele_resim_secme()
{
$resimlerin_adresi=‘http://www.siteadresi.kom/wp-content/themes/tema/resimler/’;
$rastgele_sayi = rand(1, 78);
echo $resimlerin_adresi.$rastgele_sayi.’.jpg’;
}

Sayfaların uzun sürede oluşturulması durumunu da eklenti kullanmaktan kaçıp herşeyi temanın ya da WordPress’in kendi fonksiyonlarını yoğun kullanmaya bağlıyorum. Çünkü farklı hizmetleri daha başarılı şekilde yapan optimize eklentiler var, bunları biraz kurcalamam gerekiyor. Şu an ana sayfam 39 sorgu ile oluşturuluyor ve alt sayfalar da 48 kadar sorgu ile. Temanın üst kısım dosyasında (header.php) blog bilgileri ile ilgili fonksiyonları üretilmiş sayfadan bilgilerle değiştirdim ki fonksiyon sayısını azaltayım ama bu da 38 olan sorgu sayısını 39’a yükseltmek dışında birşey yapmadı. 😀 Şimdilik de 1 saniyeyi aşma fikrimden vazgeçtim, kişisel bilgisayarımda bile göremiyorum o bir saniyeyi ben. 😀