PHP ile Dosya Okuma
file_get_contents ve fopen/fread kullanarak dosya içeriğini okuyun.
PHP ile Dosya Okuma, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 1. 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 ve Dosya Sistemi
PHP, sunucunun dosya sistemindeki dosyaları okuyabilir, yazabilir ve yönetebilir. Okuma için temel işlevler:
file_get_contents()— dosyanın tamamını dize olarak okurfopen()+fread()— akış tabanlı okumafile()— dosyayı satırlardan oluşan bir diziye okur
file_get_contents()
Bir dosyanın tüm içeriğini dizeye okumanın en basit yolu:
<?php
$content = file_get_contents('/var/www/html/data.txt');
if ($content === false) {
echo 'Could not read file';
} else {
echo $content;
echo strlen($content) . ' bytes';
}Dosyanın Var Olup Olmadığını Kontrol Etme
Hataları önlemek için okumadan önce her zaman kontrol edin:
<?php
$path = '/var/data/config.json';
if (!file_exists($path)) {
die('Config file not found');
}
if (!is_readable($path)) {
die('No permission to read file');
}
$json = file_get_contents($path);
$config = json_decode($json, true);file() — Diziye Okuma
file() bir dosyayı okur ve her satırı bir dizi öğesi olarak döndürür:
<?php
$lines = file('data.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $lineNum => $line) {
echo ($lineNum + 1) . ': ' . $line . PHP_EOL;
}fopen, fread, fclose
Büyük dosyalar için düşük seviyeli akış okuması — her şeyi belleğe yüklemeden işleyin:
<?php
$handle = fopen('large_file.txt', 'r');
if ($handle === false) die('Cannot open file');
// Read 1KB at a time
while (!feof($handle)) {
$chunk = fread($handle, 1024);
echo $chunk;
}
fclose($handle);Satır Satır Okuma için fgets
fgets() her seferinde bir satır okur — büyük dosyalarda bellek açısından verimlidir:
<?php
$handle = fopen('server.log', 'r');
while (($line = fgets($handle)) !== false) {
if (str_contains($line, 'ERROR')) {
echo 'Found error: ' . $line;
}
}
fclose($handle);Uzak Dosyaları Okuma
file_get_contents(), allow_url_fopen etkinse HTTP URL'lerinden de okuyabilir:
<?php
$json = file_get_contents('https://api.example.com/data.json');
// Prefer cURL for more control and error handling
$ch = curl_init('https://api.example.com/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);SplFileObject
SplFileObject, dosya işlemleri için bir OO arayüzü sağlar:
<?php
$file = new SplFileObject('data.txt', 'r');
foreach ($file as $lineNum => $line) {
echo $lineNum . ': ' . $line;
}
// Read specific line:
$file->seek(5);
echo $file->current(); // line 6 (0-indexed)JSON Dosyalarını Okuma
Yaygın bir yöntem: bir JSON yapılandırma dosyasını okuyup kodunu çözmek:
<?php
function loadJsonConfig(string $path): array {
if (!file_exists($path)) {
throw new RuntimeException("Config not found: $path");
}
$json = file_get_contents($path);
$data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
}
return $data;
}
$cfg = loadJsonConfig('/app/config.json');Dosya Bilgileri
İçeriğini okumadan bir dosyanın üst verilerini alın:
<?php
$path = '/var/www/html/image.jpg';
echo filesize($path); // bytes
echo filetype($path); // 'file'
echo filemtime($path); // last modified timestamp
echo date('Y-m-d', filemtime($path));
$info = pathinfo($path);
echo $info['dirname']; // /var/www/html
echo $info['basename']; // image.jpg
echo $info['extension']; // jpgDosyaları Kilitleme
Eşzamanlı yazma çakışmalarını önlemek için dosya kilitleme kullanın:
<?php
$handle = fopen('counter.txt', 'r+');
if (flock($handle, LOCK_EX)) { // exclusive lock
$count = (int) fread($handle, 20);
$count++;
fseek($handle, 0);
fwrite($handle, $count);
fflush($handle);
flock($handle, LOCK_UN); // release
}
fclose($handle);Hızlı Kontrol
Bir dosyanın tamamını tek çağrıda dizeye okuyan PHP işlevi hangisidir?
Özet: Dosyaları Okuma
Dosya okumanın temel unsurları:
file_get_contents()— dosyanın tamamını dize olarak okurfile()— dosyayı satırlardan oluşan dizi olarak okurfopen/fread/fclose— büyük dosyalar için akışfgets()— satır satır akış okuması- Önce her zaman file_exists ve is_readable değerlerini kontrol edin
- Eşzamanlı erişim güvenliği için flock kullanın
Sıkça Sorulan Sorular
“PHP ile Dosya Okuma” dersi ücretsiz mi?
Evet — “PHP ile Dosya Okuma” 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.
“PHP ile Dosya Okuma” dersinde ne öğreneceğim?
file_get_contents ve fopen/fread kullanarak dosya içeriğini okuyun. 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 1. dersidir.
“PHP ile Dosya Okuma” 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