fopen var değil yeni bir dosya oluşturmak

4 Cevap php

Ben var ya da zaten yapacak bir dosyaya yazmaz bir dosya oluşturmak ya çalışıyorum.

bir php dosyası içinde ben bu çalışıyorum:

$ Dosya = fopen ("data.txt", "a");

fwrite($file, "\n" . $name); fwrite($file, "," . $lastname);

fwrite (. $ dosya "," $ email);

fclose ($ dosya);

Ben Windows XP altında çalışan Apache ve dosya "data.txt" oluşturulduğunu hiç şansım var duyuyorum. Docs bir parametresini ekleyerek yumruk parametresi (data.txt) belirtilen bir adla bir dosya oluşturmak gerektiğini söylüyorlar. Burada sıkmak ne yapıyorum?

Thanks in advance undersound

4 Cevap

Senin kod için bazı testler ve hata ayıklama çıktısını toplayalım

echo 'cwd is: ', getcwd(), "<br />\n";
echo 'target should be: ', getcwd(), "/data.txt <br />\n";
echo 'file already exists: ', file_exists('data.txt') ? 'yes':'no', "<br />\n";

$file = fopen("data.txt", "a");
if ( !$file ) {
  die('fopen failed');
}
$c = fwrite($file, "\n$name,$lastname,$email");
fclose($file);
echo $c, ' bytes written';

Eğer komut da geçerli biri olduğunu düşündüğü dizine mi arıyorsunuz? Apache süreç yazma izniniz var mı? Hata günlüğü, bu herhangi bir başarısız komut söz var mı?

Dosya sürecinin ana iş parçacığı çalışan dizinde oluşturulur unutmayın. Bu Ölçüm ki "ana" programı A / olduğunu ve B / bir dosya oluşturur B bir işlevden bir işlevleri dosya içeriyorsa "." / B A / değil onu yaratır

Ayrıca, fwrite fonksiyonunu 3 kez aramak gerek yoktur, yapabilirsiniz

fwrite($file, "\n" . $name . ", " . $lastname . ", " . $email);

Zaten varolan data.txt eserleri ekleyerek, ama henüz var olmayan bir dosyayı yaratmak değil, bu büyük olasılıkla dosya izinleri içine yazmaya izin anlamına geleceğini, ancak dosya bulunduğu klasör Apache ait değildir, ve gibi, orada dosyaları oluşturabilirsiniz olamaz.