fopen创build不存在的新文件

我正在尝试创build一个不存在的文件,或者写入已经存在的文件。

在一个PHP文件,我想这个:

$ file = fopen(“data.txt”,“a”);

fwrite($ file,“\ n”。$ name); fwrite($ file,“,”。$ lastname);

fwrite($ file,“,”。$ email);

FCLOSE($文件);

我在Windows XP下运行Apache,并没有运气,正在创build文件“data.txt”。 该文档说,添加一个参数应创build一个名字在第一个参数(data.txt)中提到的文件。 我在这里干什么?

先谢谢了

让我们添加一些测试和调试输出到您的代码

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'; 

你正在查看该目录脚本也认为它是目前的? 你的apache进程是否有写权限? 错误日志是否提到了这个失败的命令?

请记住,该文件是在进程的主线程正在运行的目录中创建的。 这个措施,如果“主”程序在A /中,并且它包括一个来自B中的B / A功能的功能文件,该功能文件在“。”中创建一个文件。 创造它在A /而不是在B /

另外,没有必要调用fwrite函数3次,你可以这样做

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

如果追加到一个已经存在的data.txt工作,但不创建一个还不存在的文件,这很可能意味着文件权限允许写入文件,但文件所在的文件夹不属于Apache,因此,它不能在那里创建文件。