Dizinlerle Çalışma
scandir ve mkdir ile dizinleri listeleyin, oluşturun ve silin.
Dizinlerle Çalışma, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
PHP'de Dizin İşlemleri
PHP, sunucudaki dizinleri listelemek, oluşturmak, gezinmek ve silmek için işlevler sunar:
scandir()— dizin içeriğini listelermkdir()— dizin oluştururrmdir()— boş dizini kaldırırglob()— bir örüntüyle eşleşen dosyaları bulur
scandir()
Bir dizindeki tüm dosya ve dizinleri listeleyin:
<?php
$entries = scandir('/var/www/html/uploads');
// scandir includes '.' and '..'
$entries = array_diff($entries, ['.', '..']);
foreach ($entries as $entry) {
echo $entry . PHP_EOL;
}glob() ile Örüntü Eşleştirme
glob(), kabuk tarzı bir örüntüyle eşleşen dosyaları döndürür:
<?php
// Find all PHP files in a directory
$phpFiles = glob('/var/www/html/*.php');
// Recursively with GLOB_BRACE
$logs = glob('/var/log/{app,error,access}.log', GLOB_BRACE);
foreach ($phpFiles as $file) {
echo basename($file) . PHP_EOL;
}mkdir() ve İzinler
Bir veya birden fazla iç içe dizin oluşturun:
<?php
$dir = '/var/www/uploads/2024/05';
// Create nested directories in one call:
if (!is_dir($dir)) {
mkdir($dir, 0755, true); // true = recursive
echo "Created: $dir";
}Dizinleri Silme
rmdir() yalnızca boş dizinleri kaldırır. İçerikleriyle birlikte silmek için özyinelemeli bir işlev kullanın:
<?php
function deleteDir(string $path): void {
foreach (scandir($path) as $entry) {
if ($entry === '.' || $entry === '..') continue;
$full = $path . DIRECTORY_SEPARATOR . $entry;
is_dir($full) ? deleteDir($full) : unlink($full);
}
rmdir($path);
}
deleteDir('/tmp/old_cache');DirectoryIterator ile Dizin Yineleme
Dizin içeriğini yinelemenin OO yolu:
<?php
$dir = new DirectoryIterator('/var/www/html/images');
foreach ($dir as $info) {
if ($info->isDot()) continue;
echo $info->getFilename();
echo ' (' . $info->getSize() . ' bytes)';
echo PHP_EOL;
}RecursiveDirectoryIterator
Bir dizin ağacındaki tüm dosyaları özyinelemeli olarak yineleyin:
<?php
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/var/www/src')
);
foreach ($iterator as $file) {
if ($file->isDot()) continue;
if ($file->getExtension() === 'php') {
echo $file->getPathname() . PHP_EOL;
}
}getcwd ve chdir
Geçerli çalışma dizinini alın ve değiştirin:
<?php
$originalDir = getcwd();
echo 'Current: ' . $originalDir . PHP_EOL;
chdir('/var/www/html');
echo 'Changed to: ' . getcwd() . PHP_EOL;
// Restore
chdir($originalDir);
echo 'Restored: ' . getcwd() . PHP_EOL;Yol İşleme
Taşınabilir sabitler ve işlevlerle dosya yolları oluşturun ve ayrıştırın:
<?php
// DIRECTORY_SEPARATOR = '/' on Unix, '\\' on Windows
$base = '/var/www/app';
$subPath = 'uploads' . DIRECTORY_SEPARATOR . 'images';
$full = $base . DIRECTORY_SEPARATOR . $subPath;
echo realpath($full); // resolves symlinks
// __DIR__ is the directory of the current file
$configPath = __DIR__ . '/../config/settings.json';
echo realpath($configPath);Disk Alanı
Kullanılabilir ve toplam disk alanını kontrol edin:
<?php
$path = '/var/www';
$free = disk_free_space($path);
$total = disk_total_space($path);
$used = $total - $free;
echo 'Used: ' . round($used / 1024**3, 2) . ' GB';
echo 'Free: ' . round($free / 1024**3, 2) . ' GB';
echo 'Total: ' . round($total / 1024**3, 2) . ' GB';SPL Geçici Dizini
Platformlar arasında doğru geçici dizini bulmak için her zaman sys_get_temp_dir() kullanın:
<?php
$tmpDir = sys_get_temp_dir();
echo 'Temp dir: ' . $tmpDir;
// Create a unique temporary directory
$uniqueDir = $tmpDir . DIRECTORY_SEPARATOR . 'myapp_' . uniqid();
mkdir($uniqueDir, 0700);
// ... use directory ...
// cleanup when doneHızlı Kontrol
İç içe dizinleri tek çağrıda özyinelemeli olarak oluşturan PHP işlevi hangisidir?
Özet: Dizinlerle Çalışma
Dizin işlemleri:
scandir()— içeriği listeler (. ve .. öğelerini içerir)glob()— dosyaları örüntüye göre bulurmkdir($path, 0755, true)— özyinelemeli oluşturmarmdir()— boş dizini kaldırır- Derinlemesine gezinme için RecursiveDirectoryIterator
- Taşınabilir yollar için
__DIR__veDIRECTORY_SEPARATOR
Sıkça Sorulan Sorular
“Dizinlerle Çalışma” dersi ücretsiz mi?
Evet — “Dizinlerle Çalışma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Dizinlerle Çalışma” dersinde ne öğreneceğim?
scandir ve mkdir ile dizinleri listeleyin, oluşturun ve silin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Dizinlerle Çalışma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- PHP ile Dosya Okuma
- Dosyalara Yazma ve Ekleme
- Dizinlerle Çalışma
- Dosya Yüklemelerini İşleme