PHP'de Bir Klasörün İçeriğini İnceleme
Bizim bir dir klasörümüz olduğunu varsayalım,
içinde hem dosyalar hem de klasörler bulunsun.
Bu klasörden bir isim dizisi alalım:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Her bir isim için, bunun bir dosya mı yoksa klasör mü olduğunu kontrol edelim:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Taramakta olduğumuz klasörün adının kodun iki yerinde yazılı olduğuna dikkat edin. Bu pek kullanışlı değil. Bu adı ayrı bir değişkene atalım:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Şimdi tüm dosyalar için içeriklerini ekrana yazdıralım:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Dosya yolunun iki kez hesaplandığı fark edilebilir. Bunu ayrı bir değişkene atayalım:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // dosya yolu
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Bir klasör verildi. Bu klasörün alt klasörlerinin adlarını bir sütun halinde ekrana yazdırın.
Bir klasör verildi. Bu klasördeki dosyaların adlarını bir sütun halinde ekrana yazdırın.
Bir klasör verildi. Bu klasördeki her dosyanın sonuna mevcut zaman bilgisini ekleyin.