Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

Php İle Dizileri Listeleme

1 min read

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]<?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.’- ‘; }

?>[/php]

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.

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer