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.
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 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.
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 |



