- Moderatör
- #1
- MG Yaşı
- 1 Yıl 3 Ay 9 Gün
- Katılım
- 24 Ara 2024
- Konular
- 0
- Mesajlar
- 179
- Tepkime puanı
- 21
- Puan
- 43

PHP 'de Dosyaları Açma ve Kapatma Nasıl Yapılır?
Bu bölümde dosyalarla ilgili aşağıdaki işlevler açıklanacaktır:- Bir Dosya Açma
- Bir Dosyayı Okumak
- Bir Dosya Yazma
- Bir Dosyayı Kapatma
Dosyaları Açma ve Kapatma
PHP fopen() fonksiyonu bir dosyayı açmak için kullanılır. Önce dosya adını ve sonra da hangi modda çalışılacağını belirten iki argümana ihtiyaç duyar.Dosya modları bu tabloda yer alan altı seçenekten biri olarak belirtilebilir.
| Sr.No | Mod ve Amaç |
|---|---|
| 1 | R Dosyayı yalnızca okumak için açar. Dosya işaretçisini dosyanın başına yerleştirir. |
| 2 | r + Dosyayı okuma ve yazmaya açar. Dosya işaretçisini dosyanın başına yerleştirir. |
| 3 | w Dosyayı yalnızca yazma amaçlı açar. Dosya işaretçisini dosyanın başına yerleştirir. ve dosyayı sıfır uzunluğa keser. Eğer dosyalar varsa bir dosya oluşturmaya çalışır. |
| 4 | w+ Dosyayı yalnızca okuma ve yazma için açar. Dosya işaretçisini dosyanın başına yerleştirir. ve dosyayı sıfır uzunluğa keser. Eğer dosyalar varsa bir dosya oluşturmaya çalışır. |
| 5 | A Dosyayı yalnızca yazma amaçlı açar. Dosya işaretçisini dosyanın sonuna yerleştirir. Eğer dosyalar mevcut değilse dosya oluşturmaya çalışır. |
| 6 | bir+ Dosyayı yalnızca okuma ve yazma için açar. Dosya işaretçisini dosyanın sonuna yerleştirir. Eğer dosyalar mevcut değilse dosya oluşturmaya çalışır. |
Bir dosyayı açma girişimi başarısız olursa fopen false değerini döndürür, aksi takdirde o dosyaya daha fazla okuma veya yazma işlemi için kullanılan bir dosya işaretçisi döndürür .
Açılan dosyada değişiklik yaptıktan sonra fclose() fonksiyonuyla kapatmak önemlidir . fclose() fonksiyonu argüman olarak bir dosya işaretçisi gerektirir ve kapanış başarılı olduğunda true , başarısız olduğunda false döndürür.
Bir Dosyayı Okumak
Bir dosya fopen() fonksiyonu kullanılarak açıldığında fread() adlı bir fonksiyonla okunabilir . Bu fonksiyon iki argüman gerektirir. Bunlar dosya işaretçisi ve bayt olarak ifade edilen dosyanın uzunluğu olmalıdır.Dosyanın uzunluğu , dosya adını argüman olarak alan ve dosyanın boyutunu bayt cinsinden döndüren filesize() fonksiyonu kullanılarak bulunabilir .
İşte PHP ile bir dosyayı okumak için gerekli adımlar.
- fopen() fonksiyonunu kullanarak bir dosya açın .
- filesize() fonksiyonunu kullanarak dosyanın uzunluğunu alın .
- fread() fonksiyonunu kullanarak dosyanın içeriğini okuyun .
- Dosyayı fclose() fonksiyonuyla kapatın.
Örnek
Aşağıdaki örnek bir metin dosyasının içeriğini bir değişkene atar ve ardından bu içeriği web sayfasında görüntüler.Kod:
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>Aşağıdaki sonucu üretecektir:

Bir Dosya Yazma
PHP fwrite() fonksiyonu kullanılarak yeni bir dosya yazılabilir veya var olan bir dosyaya metin eklenebilir . Bu fonksiyon, bir dosya işaretçisi ve yazılacak veri dizesini belirten iki argüman gerektirir. İsteğe bağlı olarak, yazılacak verinin uzunluğunu belirtmek için üçüncü bir tamsayı argümanı eklenebilir. Üçüncü argüman eklenirse, belirtilen uzunluğa ulaşıldıktan sonra yazma işlemi durur.Örnek
Aşağıdaki örnek yeni bir metin dosyası oluşturur ve sonra içine kısa bir metin başlığı yazar. Bu dosya kapatıldıktan sonra varlığı, dosya adını argüman olarak alan file_exist() fonksiyonu kullanılarak doğrulanır.Kod:
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>Aşağıdaki sonucu üretecektir:

