Php Dosyaya Yazma Hakkında Yardım

Champion78

Profesör
Katılım
29 Eylül 2006
Mesajlar
1,716
Reaksiyon puanı
43
Puanları
228
Merhaba arkadaşlar,
yarım saattir uğraşıyorum, php ile dosyaya alt alta metin yazdıramıyorum deli oldum :cursing:

fputs($dosya,"metin\n");

yazıyorum, dosyada da \n çıkıyor. nereye baktıysam böyle yapıldığını söylemiş. var mı bir bilgisi olan???
 

Persona Grata

Profesör
Emektar
Katılım
21 Aralık 2009
Mesajlar
3,515
Reaksiyon puanı
53
Puanları
228
<?php
$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt";
$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
$metin = "Bu satır dosyaya yazılacak: Merhaba Dünya!\n";
fwrite ( $dosya , $metin ) ;
fputs ( $dosya , "Bu satır ise sonradan eklenecek\n" ) ;
fclose ($dosya);
?>

Sizin de yaptığınız şekilde bir sorun çıkmaması lazım. :S
 

Champion78

Profesör
Katılım
29 Eylül 2006
Mesajlar
1,716
Reaksiyon puanı
43
Puanları
228
\n yerine \r\n yaparsan sanırım sorunun düzelecek :)

\n\r yapmıştım olmamıştı, şimdi bir umut \r\n denedim yine olmadı :D

dosyayı fopen("../dosya.php","w") komutuyla açtım, buradaki ../ ile bir problem olmaz herhalde. bir diğer şüphelendiğim konu ise gözü çıkasıca UTF-8 :D dosya tipim de header ım da UTF-8. acaba bundan olabilir mi diye düşünüyorum. fputs ve fwrite denedim bi farklılık yok, keşke bir de fwriteline olsaymış :D

başka fikri olan???
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
sana örnek bir kod vereyim istersen :) Bunda sorunsuz çalışıyor sen de kendine göre uyarla :)
Kod:
<?php
$fileContainer = 'myfile.log';
$filePointer = fopen($fileContainer,"w+");
$logMsg = "You are located at\r\nlocalhost";
fwrite($filePointer,$logMsg);
fclose($filePointer);
?>
 

Proof.Web

Doçent
Katılım
3 Temmuz 2010
Mesajlar
999
Reaksiyon puanı
21
Puanları
0
Dostum Local'demi Çalışıyorsun ?
Eğer Localde değil de hostta çalışıyorsan CHMOD ayarları 777 olmalıdır :)
 

Champion78

Profesör
Katılım
29 Eylül 2006
Mesajlar
1,716
Reaksiyon puanı
43
Puanları
228
localde çalıştırıyorum. denediğim yöntem şu idi:
Kod:
$yazilacak="deneme\r\ndeneme2\r\ndeneme3";
fputs($dosya,$yazilacak);

bir türlü çalışmadı, sebebini hala bilmiyorum. Sorunu şu şekilde çözdüm:
Kod:
$yazilacak="deneme
deneme2
deneme3";
fputs($dosya,$yazilacak);

bu şekilde yapınca oldu :D

problem çözüldü...
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
PHP sunucusundan fark ediyo demek ki. Bende de benim önerdiğim gibi düzgün yapıyo diğerlerini kabul etmiyo :D
 

Champion78

Profesör
Katılım
29 Eylül 2006
Mesajlar
1,716
Reaksiyon puanı
43
Puanları
228
ben wamp kullanıyorum windows üzerinde tabiki. normalde herkes \r\n demiş ama bende olmadı nedense :D
 

Champion78

Profesör
Katılım
29 Eylül 2006
Mesajlar
1,716
Reaksiyon puanı
43
Puanları
228
dosyaları yükleyeceğim bir sunucu olmayacak :D

bitirme projem için kafamda bir proje vardı, ona ufaktan başladım. yani bittiğinde sadece local de çalışacak :D beğenip satın alan olursa, ilgileniriz :)
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Sanırım kaydederken text formatını farklı almışsın. Dosya formatı standart olmayabilir, karakter kodlamasını değiştirmiş olabilirsin. Ya da Win üzerinde *nix, veya tam tersi *nix üzerinde Win formatında kayıt yapıyor olabilirsin.

Gerekirse string ekleme yöntemi kullanılabilir. Şöyle ki:

Kod:
$eklenecek = 'Eklenecek metinler' . "\r\n";

Bu arada \r\n Windows için, \n ise *nix formatı için için kullanılır.
 
Üst