0Pricing
PHP Academy · Ders

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 listeler
  • mkdir() — dizin oluşturur
  • rmdir() — boş dizini kaldırır
  • glob() — 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 done

Hı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 bulur
  • mkdir($path, 0755, true) — özyinelemeli oluşturma
  • rmdir() — boş dizini kaldırır
  • Derinlemesine gezinme için RecursiveDirectoryIterator
  • Taşınabilir yollar için __DIR__ ve DIRECTORY_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

  1. PHP ile Dosya Okuma
  2. Dosyalara Yazma ve Ekleme
  3. Dizinlerle Çalışma
  4. Dosya Yüklemelerini İşleme
← PHP Academy Sayfasına Dön