Php 8 Dosya Okuma

Php 8 Dosya Okuma

PHP 8'de dosya okuma işlemleri, sunucuda yer alan dosyalara erişmek ve bu dosyalardaki verileri almak için kullanılır. PHP, dosya okuma işlemleri için çeşitli fonksiyonlar sunar. Bu fonksiyonlar ile dosyayı satır satır veya tüm içeriği bir kerede okuyabilir, dosya içeriklerini işleyebiliriz.

PHP 8'de Dosya Okuma Fonksiyonları

  1. fopen() : Bir dosyayı açmak için kullanılır.
  2. fread() : Açılan bir dosyanın içeriğini okur.
  3. fgets() : Dosyanın bir satırını okur.
  4. file_get_contents() : Dosyanın tamamını tek seferde okur.
  5. fclose() : Açılan dosyayı kapatır.

1. file_get_contents() ile Dosya Okuma

Bu fonksiyon, dosyanın tamamını tek seferde okumak için en basit ve kullanışlı yöntemlerden biridir.

Örnek:

<?php // Dosya yolunu belirt $dosya_yolu = "ornek.txt"; // Dosyanın içeriğini oku $icerik = file_get_contents($dosya_yolu); // Dosya içeriğini ekrana yazdır echo $icerik; ?>

Bu kod, belirtilen dosyanın tüm içeriğini okur ve ekrana yazdırır. Eğer dosya büyükse, bu yöntem büyük miktarda belleğe ihtiyaç duyabilir.

2. fopen() ve fread() ile Dosya Okuma

fopen(), dosyayı açar ve ardından fread() ile dosyanın içeriğini okur. Bu yöntem daha fazla kontrol sağlar.

Örnek:

<?php // Dosyayı 'r' (okuma) modunda aç $dosya = fopen("ornek.txt", "r"); if ($dosya) { // Dosyanın boyutunu al $dosya_boyutu = filesize("ornek.txt"); // Dosyanın tamamını oku $icerik = fread($dosya, $dosya_boyutu); // Dosya içeriğini ekrana yazdır echo $icerik; // Dosyayı kapat fclose($dosya); } else { echo "Dosya açılamadı."; } ?>

Bu kod, fopen() ile dosyayı açar, fread() ile dosyanın içeriğini okur ve fclose() ile dosyayı kapatır. filesize() fonksiyonu, dosyanın boyutunu alarak, fread()'in kaç bayt okunacağını belirtir.

3. fgets() ile Satır Satır Dosya Okuma

fgets() fonksiyonu, dosyadan bir satır okur. Eğer dosya büyükse, satır satır okuma daha verimli olabilir.

Örnek:

<?php // Dosyayı 'r' (okuma) modunda aç $dosya = fopen("ornek.txt", "r"); if ($dosya) { // Dosyanın sonuna gelene kadar satır satır oku while (($satir = fgets($dosya)) !== false) { echo $satir . "<br>"; } // Dosyayı kapat fclose($dosya); } else { echo "Dosya açılamadı."; } ?>

Bu kod, dosyanın her bir satırını okur ve ekrana yazdırır. Satır sayısı ne kadar olursa olsun, dosyanın tamamını hafızaya yüklemek yerine satır satır işleme yapar.

4. file() ile Dosyayı Satır Satır Diziye Okuma

file() fonksiyonu, dosyayı satır satır okur ve her satırı bir dizi elemanı olarak döner. Tüm satırları bir dizi olarak almak istiyorsanız kullanışlıdır.

Örnek:

<?php // Dosyayı satır satır diziye oku $satirlar = file("ornek.txt"); foreach ($satirlar as $satir) { echo $satir . "<br>"; } ?>

Bu kod, dosyanın her satırını bir dizi elemanı olarak alır ve her satırı ekrana yazdırır.

5. fgetcsv() ile CSV Dosyasını Okuma

CSV (Comma Separated Values) dosyaları virgülle ayrılmış veriler içerir. fgetcsv() fonksiyonu, CSV dosyalarını satır satır okuyarak, her satırdaki verileri bir dizi olarak döndürür.

Örnek:

<?php // CSV dosyasını aç $dosya = fopen("ornek.csv", "r"); if ($dosya) { // Dosyanın sonuna kadar satır satır oku while (($veriler = fgetcsv($dosya, 1000, ",")) !== false) { // Verileri ekrana yazdır print_r($veriler); echo "<br>"; } // Dosyayı kapat fclose($dosya); } else { echo "Dosya açılamadı."; } ?>

Bu kod, CSV dosyasındaki her satırı okur ve bir dizi olarak ekrana yazdırır. Her satırdaki veriler virgülle ayrılmış olduğu için, dizi elemanları bu şekilde ayrılır.

Dosya Okuma Modları

  • r : Dosyayı sadece okuma modunda açar. Dosya mevcut olmalıdır.
  • r+ : Dosyayı hem okuma hem yazma modunda açar. Dosya mevcut olmalıdır.
  • w : Dosyayı sadece yazma modunda açar. Eğer dosya yoksa oluşturur, varsa içeriğini siler.
  • w+ : Dosyayı hem okuma hem yazma modunda açar. Eğer dosya yoksa oluşturur, varsa içeriğini siler.
  • a : Dosyayı ekleme modunda açar. Eğer dosya yoksa oluşturur, varsa sonuna ekleme yapar.
  • a+ : Dosyayı hem okuma hem ekleme modunda açar.

6. Dosya Varlığını Kontrol Etme

Dosya okumadan önce dosyanın var olup olmadığını kontrol etmek için file_exists() fonksiyonunu kullanabilirsiniz.

Örnek:

<?php if (file_exists("ornek.txt")) { $icerik = file_get_contents("ornek.txt"); echo $icerik; } else { echo "Dosya bulunamadı."; } ?>

Bu kod, dosyanın varlığını kontrol eder ve varsa dosyayı okur.

7. fscanf() ile Biçimli Okuma

fscanf() fonksiyonu, dosyadan biçimlendirilmiş veri okur. Tıpkı printf() veya sprintf() gibi, veri biçimi belirleyebilirsiniz.

Örnek:

<?php // Dosyayı aç $dosya = fopen("ornek.txt", "r"); if ($dosya) { // Dosyadan sayı ve metin biçiminde veri oku fscanf($dosya, "%d %s", $sayi, $metin); // Okunan veriyi yazdır echo "Sayı: $sayi, Metin: $metin"; // Dosyayı kapat fclose($dosya); } else { echo "Dosya açılamadı."; } ?>

Bu örnek, dosyadan belirli bir formatta veri okuyarak değişkenlere atar.


Sonuç

PHP 8'de dosya okuma işlemleri, basit dosya okuma yöntemlerinden satır satır veya belirli formatlarda okuma gibi daha gelişmiş yöntemlere kadar çeşitlilik gösterir. file_get_contents() hızlı ve basit bir yol sunarken, fopen() ve fgets() gibi fonksiyonlar daha fazla esneklik ve kontrol sağlar. Dosya okuma işlemi yaparken güvenlik açısından dikkatli olmak önemlidir; özellikle dışarıdan gelen dosyalarla çalışıyorsanız, verileri doğrulamak ve güvenli hale getirmek gerekir.



Yorum Ekle

Üzerine gel