|

PHP ile Dizinde Yer Alan Dosya Sayısı Bulma

Diğer web sitem’e (www.hesapcim.com) baktıysanız sağ alanda bir karikatür scripti göreceksiniz. Bu karikatür her yeni sayfaya geçtiğinizde otomatik olarak değişiyor ve karikatürler arasından rasgele seçim yaparak bu işlemi gerçekleştiriyor.

Bu işlemin algoritması ise karikatürlerin bulunduğu dizin içindeki karikatürleri saymak ve rasgele olarak bunları görüntülemektir. Şimdi aşama aşama bu algoritmayı anlatayım.

Öncelikle bir php sayfası oluşturun ve buna rasgeleresim.php ismini verin. Resimleri rasgeleresim isimli dizine atın. Daha sonra ise bu sayfaya veri tabanınıza bağlantı için tasarladığınız baglantim.php sayfasını include edin.

include('baglantim.php');

$path="rasgeleresim";  
$dir=opendir($path);  
while ($content=readdir($dir))  
{  
    if (is_file($path."/".$content) AND ($dir != ".."))  
    $dizi[]=$content;  
    }  
$dosya_sayisi=count($dizi);

Yukarıdaki kod, içinde rasgeleresim isimli bir dizinimiz olduğunu öğrendi ve bu dizinde yer alan dosyaları array mantığıyla indeksledi.

$toplam = $dosya_sayisi; 
$resim_uzantisi = ".jpg"; 
$resim_klasoru = "rasgeleresim"; 
$ilk = "1"; 
$rastgele = mt_rand($ilk, $toplam); 
$resim_adi = $rastgele . $resim_uzantisi; 
$resim="resim/".$resim_adi;

Üst kısımda yer alan kod ise dizinde yer alan resimlerin uzantısının .jpg olması gerektiğini söylüyor. Başlangıç noktasının 1 olduğunu ve dosya sayısının son aralık olduğunu söylüyor. Burada çıkan sonucu istediğiniz bir div ya da sayfa içinde gösterebilirsiniz. Bunun içinse aşağıdaki kod yeterlidir.

<?php
echo $resim;
?>

 Faydalı olması dileğiyle…

Similar Posts

7 Comments

  1. Paylaşımlarınızı özenle takip ediyorum. Sayenizde çok şey öğrendim hocam. Hakkınızı helal edin…

    1. Varsa helal olsun. Zaten fayda sağlamak için paylaşıyorum. Bu şekilde dönüşler olunca ve insanların faydalandığını görünce daha da gayretleniyorum. İlginiz için teşekkür ederim.

    1. PHP için video’lu eğitim seti hazırlıyorum. Ancak bilmek istediğiniz bir konu varsa ve acilse, yardımcı olabilirim.

  2. //$path=”./image/sinav1″;
    echo $patch;
    $dir=opendir($patch);
    while ($content=readdir($dir))
    {
    if (is_file($path.”/”.$content) AND ($dir != “..”))
    $dizi[]=$content;
    echo $dizi;
    }

    $path=”./image/sinav1″; olan satırı açtığımda dosya sayısını alıyor ancak kapattığımda yani veritabanından çektiğimde saymıyor. kontrol ediyorum yol aynı ./image/sinav1 el ile yazdığımda sayıyor veritabanından çektiğimde saymıyor. yardımcı olabilir misiniz?

    1. Merhaba.
      Öncelikle dizini htdocs içindeki bir klasörde oluşturmanızı tavsiye ederim. / işareti php ile html’in birlikte uygulandığı durumlarda kullanılan bir işaret olduğu için, apache serverde çakışma olabiliyor. Htdocs içine images diye bir klasör açıp, içine resimleri attıktan sonra aşağıdaki kodu deneyebilir misiniz?
      $path="images";
      echo $path;
      $dir=opendir($path);
      while ($content=readdir($dir))
      {
      if (is_file($path.”/”.$content) AND ($dir != “..”))
      $dizi[]=$content;
      echo $dizi;
      }

  3. teşekkür ederim alt klasörden çıkarıp bir üst klasöre çıkarınca problem kalmadı.

Şakir Koç için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.