- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 7 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
PHP'de fopen() fonksiyonu, yazma modu için "w", okuma modu için "r" ve aynı anda okuma/yazma işlemi için "r+" veya "r+" modu ve ekleme modu için "a" modu gibi farklı açma modlarında kullanılan bir dosyanın dosya işaretçisini döndürür.
Bir dosya "w" mod parametresiyle açıldığında, her zaman yeni bir dosya açılır. Bu, dosya zaten mevcutsa içeriğinin kaybolacağı anlamına gelir. Sonraki fwrite() fonksiyonu, verileri dosyanın başlangıç konumuna koyacaktır.
Aşağıdaki içeriklere sahip "new.txt" adlı bir dosyanın mevcut olduğunu varsayalım:
Hello World
TutorialsPoint
PHP Tutorial
Aşağıdaki ifade:
$fp = fopen("new.txt", "w");
Yeni içerik yazılmadan önce mevcut tüm verileri siler.
Okuma/Yazma Modu
Açıkça, dosya "r" moduyla açılırsa yeni veri eklemek mümkün değildir. Ancak, "r+" veya "w+" modu dosyayı "r/w" modunda açar, ancak yine de bir dosyayı açtıktan hemen sonra bir fwrite() ifadesi içeriğin üzerine yazacaktır.Örnek
Aşağıdaki koda bir göz atın.
PHP:
<?php
$fp = fopen("new.txt", "r+");
fwrite($fp, "PHP-MySQL Tutorial\n");
fclose($fp);
?>
Bu kodla, "new.txt" dosyasının içeriği artık şu hale gelecektir:
PHP-MySQL Tutorial
lsPoint
PHP Tutorial
Yeni içeriğin mevcut dosyanın sonuna eklendiğinden emin olmak için, yazma işleminden önce dosya işaretçisini elle sona koymamız gerekir. (Başlangıç dosya işaretçisi konumu 0. bayttadır)
fseek() Fonksiyonu
PHP'nin fseek() fonksiyonu dosya işaretçisini istediğiniz yere yerleştirmenizi mümkün kılar.fseek(resource $stream, int $offset, int $whence = SEEK_SET): int
$whence parametresi, ofsetin sayıldığı yerdir. Değerleri:
- SEEK_SET − Konumu ofset baytlarına eşitle.
- SEEK_CUR − Konumu geçerli konuma artı ofsete ayarla.
- SEEK_END − Konumu dosya sonu artı ofset olarak ayarla.
Örnek
Yani aşağıdaki kodda olduğu gibi fseek() fonksiyonu ile işaretçiyi sona taşımamız gerekiyor, bu da yeni içeriği sona ekliyor.
PHP:
<?php
$fp = fopen("new.txt", "r+");
fseek($fp, 0, SEEK_END);
fwrite($fp, "\nPHP-MySQL Tutorial\n");
fclose($fp);
?>
Şimdi "new.txt"nin içeriğini kontrol edin. Aşağıdaki metne sahip olacaktır:
Hello World
TutorialsPoint
PHP Tutorial
PHP-MySQL Tutorial
Ekleme Modu
İşaretçiyi elle sona taşımak yerine, fopen() fonksiyonundaki "a" parametresi dosyayı ekleme modunda açar. Her fwrite() ifadesi, işaretçiyi otomatik olarak SEEK_END pozisyonuna taşıyarak, içeriği mevcut içeriklerin sonuna ekler.
PHP:
<?php
$fp = fopen("new.txt", "a");
fwrite($fp, "\nPHP-MySQL Tutorial\n");
fclose($fp);
?>
fopen() fonksiyonu için izin verilen modlardan biri, dosyanın okuma/ekleme işlemini gerçekleştirdiği "r+" modudur. Herhangi bir konumdan veri okumak için, işaretçiyi fseek() ile istediğiniz bayta yerleştirebilirsiniz. Ancak, her fwrite() işlemi yalnızca sona yeni içerik yazar.
Örnek
Aşağıdaki programda, dosya "a+" modunda açılır. İlk satırı okumak için, dosya konumunu başlangıçtan itibaren 0'a kaydırırız. Ancak, fwrite() ifadesi yine de sona yeni içerik ekler ve açılış modu "r+" modunda olsaydı olacağı gibi sonraki satırı üzerine yazmaz.
PHP:
<?php
$fp = fopen("new.txt", "a+");
fseek($fp, 0, SEEK_SET);
$data = fread($fp, 12);
echo $data;
fwrite($fp, "PHP-File Handling");
fclose ($fp);
?>
Bu nedenle, "r+/w+" modunda veya "a/a+" modunda açılmış bir dosyaya veri ekleyebiliriz.

