Php İle Dizileri Listeleme

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

yakuter

Erhan Yakut

www.yakuter.com

Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.

Bu Yazıya Ait Yorumlar

Ömer

Ömer
24 Haziran 2009

foreach ($dosyalar as $tekdosya)
{
if(is_file($tekdosya)):
echo $tekdosya;
endif;

}

şeklinde dosyanın varop olmadığını kontrol ederek (.) (..) daha rahat kurtulunabilir. Paylaşım için teşekkürler …

memet

memet
15 Mart 2010

hocam ben bu kodları resim icin kullandım sadece resmin ismi gozukuyor bide resmin kendisini goruntulemke icin kod verirmisini tesekkurler

Peki ya sizin düşünceleriniz?

Facebook Grubumuz Twitter Wordpress Linked in Google Friendfeed RSS Beslemesi Feedburner RSS

Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.

TAMindir.com - Yeni Programlar

iPadian - Windows

Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...

ClipGrab - Windows

YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...

Elder Scrolls V Skyrim Duvar Kağıtları - Windows

Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....

Undelete 360 - Windows

Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...

Knights of the Old Republic 2 Duvar Kağıtları - Windows

Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...

Abonelik

Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.

yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.