"Çalışmadan, öğrenmeden, yorulmadan rahat yaşamanın yollarını aramayı alışkanlık haline getirmiş milletler, evvela haysiyetlerini, sonra hürriyetlerini ve daha sonra da istikballerini kaybetmeye mahkumdurlar."

Mustafa Kemal ATATÜRK



18 Ağustos 2006

Php İle Dizin Listeleme

Kategori Php, Web |

Php başlığı altında bu yazımızdaki konumuz bir dizindeki dosyaları (klasörleri ve dosyaları ayrı ayrı) listelemek. Bu temel üzerine neler yapılabilir?

  • Listelediğiniz dosyalara link vererek basit bir download scripti yapabilirsiniz.
  • Sadece resimlerin bulunduğu bir dizini listeleyerek bir fotoğraf galerisi oluşturabilirsiniz.
  • Kendinizi biraz daha geliştirerek ve dosya silme, düzenleme, upload etme gibi özellikler katarak online bir dosya yönetimi betiği (file manager) yazabilirsiniz.


Konuya kodumuzla başlayalım.

<?php
$dizin = opendir('.');
if ($dizin)
{ while ($dosya = readdir($dizin))
{
if($dosya=='.' OR $dosya=='..') // . ve .. 'ları siler
{$dosya='';}
if(is_dir($dosya)) // sadece klasörleri seçer
{ $klasorler[]=$dosya;} //klasörleri 'klasörler' isimli diziye ekler

if(!is_dir($dosya)) // sadece dosyaları seçer
{ $dosyalar[]=$dosya;} //klasörleri 'klasörler' isimli diziye ekler
} }

sort($klasorler); // klasörler dizisindekileri ismine göre sıraya sokar
sort($dosyalar); // dosyalar dizisindekileri ismine göre sıraya sokar

echo "Klasörler --> ";

foreach ($klasorler as $tekklasor)
{echo $tekklasor.'- '; }

echo "Dosyalar--> ";
foreach ($dosyalar as $tekdosya)
{ echo $tekdosya.'- '; }

?>

2 - Dizinimizi belirliyoruz. Tek nokta (.) dosyanın bulunduğu dizin anlamına gelir.
3 - Dizin doğru ise aşağısında belirtilen işlemleri yerine getireceğiz.
4 - Bir döngü oluşturup, dizinde bulunun bütün öğeleri tek tek çağırıyoruz ve '$dosya' değişkenine atıyoruz.
6,16 - Bu satırlar arasında neler yapıldığı kodda yanlarına yazdım
18 ve 23 - Bu satırlarda ekrana "Klasörler" ve "Dosyalar" yazıyoruz.
20,21 ve 24,25 - Bu satırlarda foreach kullanarak dizerdeki elemanları tek tek ekrana yazdırıyoruz.

Wordpressin anadizininde bu kodun ekran çıktısı yaklaşık olarak şöyle olacaktır.

Klasörler--> wp-admin - wp-content - wp-includes
Dosyalar --> index.php - wp-atom.php- wp-blog-header.php- wp-comments-post.php

Aslına bakarsanız bu kodu daha güzel görünmesi için html etiketleriyle süslemiştim fakat o zaman bu makalede o etiketler görünmüyorlardı. Mesela her dosyayı ve klasörü br etiketiyle alt alta yazdırmıştım ama burada yazarken görünüm bozulduğu için böyle yan yana yazılan şeklini anlattım.

Yukarıda kullandığım bütün dizi fonksiyonlarının nasıl kullanıldığını ve örneklerini burada bulabilirsiniz.


Benzer Yazılar

Yorum Yapın

yakuter.com © 2006-2008 Erhan Yakut. Tasarım Fallendesign.
Site içerisindeki içerikler izinsiz veya kaynak gösterilmeksizin kopyalanamaz, alıntı yapılamaz.

Wordpress Valid XHTML 1.0 Valid CSS