PHP Dosya() Kullanımı ve İşlevleri

⚡ Akıllı Özet

PHP'de dosya işleme, sunucuda dosya oluşturmak, okumak, yazmak, kopyalamak ve silmek için zengin bir yerleşik fonksiyon seti kullanır. Bu kılavuz, `file_exists`, `fopen` ve modları, `fwrite`, `fclose`, `fgets`, `copy`, `unlink` ve `file_get_contents` fonksiyonlarını pratik örneklerle ele almaktadır.

  • 📄 Dosyaların Sakladığı Şeyler: Dosyalar, yapılandırma ayarlarını, günlükleri ve basit verileri saklayarak, veritabanına kıyasla ucuz ve kalıcı bir depolama seçeneği sunar.
  • 🔍 Dosyaları kontrol etmek: `file_exists()` fonksiyonu, bir dosyadan okuma yapmadan veya dosya oluşturmadan önce dosyanın mevcut olup olmadığını doğrulayarak hataları önler.
  • 📂 Dosyaları Açma: fopen() fonksiyonu, dosyayı okuma, yazma ve ekleme işlemlerini kontrol eden r, w veya a gibi bir modda açar.
  • ✍️ Yazma ve Kapanış: fwrite() fonksiyonu dosya tanıtıcısına veri gönderir ve fclose() fonksiyonu iş bittiğinde tanıtıcıyı serbest bırakır.
  • ???? Dosyaları Okuma: fgets() fonksiyonu dosyayı satır satır okurken, file_get_contents() fonksiyonu dosyanın tamamını tek bir dize olarak döndürür.
  • 🗂️ Kopyala ve Sil: `copy()` fonksiyonu bir dosyayı yeni bir yola kopyalar ve `unlink()` fonksiyonu dosyayı sunucudan kalıcı olarak siler.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları, dosya ayrıştırma kodu üretebilir ve izin sorunlarını veya akış açılamama hatalarını hızlı bir şekilde çözebilir.

PHP Dosya İşleme

Dosya Nedir?

Dosya, bilgisayarda bilgi depolamak için kullanılan bir kaynaktır.

Dosyalar genellikle aşağıdaki gibi bilgileri depolamak için kullanılır:

  • Bir programın yapılandırma ayarları
  • Telefon numaralarına karşılık gelen kişi adları gibi basit veriler.
  • Görseller, resimler, fotoğraflar ve benzeri medya.

PHP Dosya Formatları Desteği

PHP dosya işlevleri aşağıdakileri içeren çok çeşitli dosya formatlarını destekler:

  • Dosya.txt
  • Dosya.log
  • Dosya.özel_uzantısı, yani dosya.xyz
  • Dosya.csv
  • File.gif, file.jpg ve benzeri resim formatları

Dosyalar çeşitli durumlarda faydalıdır:

  • Veritabanı yönetim sistemlerinin (DBMS) yönetimi için diğer yazılımlara ve becerilere ihtiyaç duyulmasına kıyasla, basit veriler için kalıcı ve uygun maliyetli bir veri depolama çözümü sunarlar.
  • Sunucu günlükleri gibi basit verileri daha sonra almak ve analiz etmek üzere saklamak istiyorsunuz.
  • Program ayarlarını, yani program.ini dosyasını kaydetmek istiyorsunuz.

PHP Dosya Fonksiyonları

PHP, zengin yerleşik fonksiyon koleksiyonu sayesinde dosyalarla çalışmanın kullanışlı bir yolunu sunar.

Operagibi sistemler Windows hem de macOS büyük/küçük harf duyarlı değildirler, Linux or Unix işletim sistemleri büyük/küçük harfe duyarlıdır.

Dosya adlandırmasında yalnızca küçük harfler kullanmak gibi bir kural benimsemek, platformlar arası uyumluluğu en üst düzeye çıkaran iyi bir uygulamadır.

Şimdi de en sık kullanılan PHP dosya fonksiyonlarından bazılarına bakalım.

PHP file_exists() İşlev

Bu fonksiyon bir dosyanın var olup olmadığını belirlemek için kullanılır.

  • Bir dosyayı işleme almadan önce var olup olmadığını bilmek istediğimizde çok işimize yarar.
  • Bu işlevi yeni bir dosya oluştururken de kullanabilirsiniz ve dosyanın sunucuda mevcut olmadığından emin olmak istersiniz.

`file_exists` fonksiyonunun sözdizimi aşağıdaki gibidir.

<?php
file_exists($filename);
?>

İŞTE,

  • “file_exists()”, dosya varsa true, yoksa false değerini döndüren PHP işlevidir.
  • “$filename”, kontrol edilecek dosyanın yolunu ve adını belirtir.

Aşağıdaki kod, my_settings.txt dosyasının var olup olmadığını belirlemek için file_exists fonksiyonunu kullanır.

<?php
if (file_exists('my_settings.txt'))
{
echo 'file found!';
}
else
{
echo 'my_settings.txt does not exist';
}
?>

Yukarıdaki kodu file_function.php adlı bir dosyaya kaydedin. Dosyayı htdocs içindeki phptuts klasörüne kaydettiğinizi varsayarak, dosyayı açın. URL http://localhost/phptuts/file_function.php Tarayıcınızda açtığınızda aşağıdaki sonuçları alacaksınız.

PHP file_exists() İşlev

PHP fopen() İşlevi

`fopen` fonksiyonu dosyaları açmak için kullanılır. Sözdizimi aşağıdaki gibidir.

<?php
fopen($file_name,$mode,$use_include_path,$context);
?>

İŞTE,

  • “fopen” PHP açık dosya işlevidir
  • “$file_name” açılacak dosyanın adıdır
  • “$mode”, dosyanın hangi modda açılacağını belirtir. Aşağıdaki tabloda modlar gösterilmektedir.
Moda Açıklama
r • Dosyayı baştan okuyun.
• Dosya mevcut değilse false döndürür.
• Sadece oku
r+ • Dosyayı baştan okuyun
• Dosya mevcut değilse false döndürür.
• Oku ve yaz
w • Başlangıçta dosyaya yaz
• Dosyayı sıfır uzunluğa kısalt
• Dosya mevcut değilse, oluşturmayı deneyin.
• Yalnızca yaz
w+ • Dosyaya başlangıçta yaz, dosyayı sıfır uzunlukta kes
• Dosya mevcut değilse, oluşturmayı deneyin.
• Oku ve yaz
a • Dosyanın sonuna ekle
• Dosya mevcut değilse, oluşturmayı deneyin.
• Yalnızca yaz
a+ • Dosyanın sonuna ekle
• Dosya mevcut değilse, oluşturmayı deneyin.
• Oku ve yaz
  • “$use_include_path” isteğe bağlıdır, varsayılan değeri false'tur. True olarak ayarlanırsa, fonksiyon include yolunda da arama yapar.
  • “$context” isteğe bağlıdır ve bağlam desteğini belirtmek için kullanılabilir.

PHP fwrite() İşlevi

fwrite fonksiyonu dosyalara yazmak için kullanılır.

Söz dizimi şu şekildedir.

<?php
fwrite($handle, $string, $length);
?>

İŞTE,

  • “fwrite”, dosyalara yazmak için kullanılan PHP işlevidir
  • “$handle” dosya işaretçisi kaynağıdır
  • “$string”, dosyaya yazılacak veridir.
  • “$length” isteğe bağlıdır ve maksimum dosya uzunluğunu belirtmek için kullanılabilir.

PHP fclose() İşlevi

PHP'de `fclose()` fonksiyonu, zaten açık olan bir dosyayı kapatmak için kullanılır.

Söz dizimi şu şekildedir.

<?php
fclose($handle);
?>

İŞTE,

  • "fclose" PHP işlevi açık bir dosyayı kapatmak için
  • “$handle” dosya işaretçisi kaynağıdır.

Şimdi my_settings.txt dosyasını oluşturan bir örneğe bakalım. fopen, fwrite ve fclose fonksiyonlarını kullanacağız.

Aşağıdaki “create_my_settings_file.php” kodu yukarıdaki örneği uygular.

Dosyasını açın
<?php

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
Bir dosyayı kapatma
<?php

fclose($fh);

?>
Dosya oluştur
<?php

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file");

$text = <<<_END

localhost;root;pwd1234;my_database

_END;

fwrite($fh, $text) or die("Could not write to file");

fclose($fh);

echo "File 1 written successfully"; ?>

Kodu test etme

Açın URL http://localhost/phptuts/create_my_settings.php Tarayıcınızda.

Aşağıdaki sayfayı alacaksınız.

PHP fclose İşlevi

Not: Diskiniz doluysa veya dosya yazma izniniz yoksa hata mesajı alırsınız.

Şuna geri dön: URL http://localhost/phptuts/file_function.phpNe gibi sonuçlar elde ediyorsunuz?

PHP fgets() İşlevi

`fgets` fonksiyonu, PHP dosyalarını satır satır okumak için kullanılır. Temel sözdizimi aşağıdaki gibidir.

<?php
fgets($handle);
?>

İŞTE,

  • “fgets”, PHP'de dosya satırlarını okumak için kullanılan fonksiyondur.
  • “$handle” dosya işaretçisi kaynağıdır.

Şimdi fopen ve fgets fonksiyonlarını kullanarak my_settings.txt dosyasını okuyan bir örneğe bakalım.

Read_my_settings.php'nin altındaki kod yukarıdaki örneği uygular.

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
?>

İŞTE,

  • “fopen” işlevi işaretçiyi dosya yolunda belirtilen dosyaya döndürür
  • Bir hata oluştuğunda "die()" fonksiyonu çağrılır. Bir mesaj görüntüler ve komut dosyasının yürütülmesini sonlandırır.

PHP kopyala() İşlevi

PHP'deki `copy` fonksiyonu dosyaları kopyalamak için kullanılır. Temel sözdizimi aşağıdaki gibidir.

<?php
copy($file,$copied_file);
?>

İŞTE,

  • “$file” kopyalanacak dosyanın dosya yolunu ve adını belirtir.
  • “$copied_file”, kopyalanan dosyanın yolunu ve adını belirtir.

Aşağıdaki kod uygulamayı göstermektedir.

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 2";
?>

Bir dosyayı silme

`unlink` fonksiyonu bir dosyayı silmek için kullanılır. Aşağıdaki kod, uygulamanın nasıl yapıldığını göstermektedir.

<?php
if (!unlink('my_settings_backup.txt'))
{
echo "Could not delete file";
}
else
{
echo "File 1 successfully deleted";
}
?>

PHP file_get_contents() İşlev

file_get_contents işlevi tüm dosya içeriğini okumak için kullanılır.

`file_get_contents` ve `fgets` arasındaki fark, `file_get_contents`'in dosya verilerini bir dize olarak döndürmesi, `fgets`'in ise dosyayı satır satır okumasıdır.

Aşağıdaki kod uygulamayı göstermektedir.

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

PHP Dosya Fonksiyonları Hızlı Referans Kılavuzu

Aşağıdaki tabloda bu eğitimde ele alınan dosya işlevleri özetlenmiştir.

İşlev Açıklama
dosya var Bir dosyanın var olup olmadığını belirlemek için kullanılır
açık Bir dosyayı açmak için kullanılır. Açılan dosyaya bir işaretçi döndürür
yaz Dosyalara yazmak için kullanılır
kapat Açık dosyayı kapatmak için kullanılır.
fget'lar Bir dosyayı satır satır okumak için kullanılır
kopya Mevcut bir dosyayı kopyalamak için kullanılır
bağlantısını kaldırmak Mevcut bir dosyayı silmek için kullanılır
file_get_contents Bir dosyanın içeriğini dize olarak döndürmek için kullanılır

SSS

fgets her çağrıda bir satır okur, fread açık bir tanıtıcıdan belirli sayıda bayt okur ve file_get_contents fopen veya fclose'a ihtiyaç duymadan tüm dosyayı tek bir çağrıda bir dizeye okur.

`fwrite` fonksiyonu açık bir dosya tanıtıcısına yazar ve etrafında `fopen` ve `fclose` fonksiyonlarına ihtiyaç duyar. `file_put_contents` ise dosyayı tek bir çağrıda açar, yazar ve kapatır; bu da onu basit yazma işlemleri için daha kısa bir seçenek haline getirir.

Yazma işleminden önce yazma iznini test etmek için `is_writable('file.txt')` komutunu, dosyanın mevcut olduğunu doğrulamak için ise `file_exists()` komutunu kullanın. Unix sistemlerinde, web sunucusu dosyaya sahipse `chmod()` komutu izinleri ayarlayabilir.

Evet. CSV, JSON veya günlük düzeni gibi formatı tanımlayın; yapay zeka, fgetcsv, json_decode veya özel bir döngü kullanarak kod üretebilir ve eksik veya hatalı dosyalar için hata işleme yapabilir. Gerçek verilerle test edin.

Evet. Dosya yolunu ve hatayı paylaşın, yapay zeka yanlış bir göreceli yolu, eksik bir dosyayı veya izin sorununu tespit edebilir ve ardından mutlak bir yol kullanmayı, dosyayı oluşturmayı veya izinleri ayarlamayı önerebilir.

Bu yazıyı şu şekilde özetleyin: