我正在尝试创建一个不存在的文件或写入已经存在的文件。
在php文件中我正在尝试这个:
$ file = fopen(“data.txt”,“a”);
fwrite($ file,“\ n”。$ name); fwrite($ file,“,”。$ lastname);
fwrite($ file,“,”。$ email);
FCLOSE($文件);
我在Windows Xp下运行Apache并且没有运气创建文件“data.txt”。文档说添加a参数应该创建一个文件,其名称在第一个参数(data.txt)中提到。我在做什么呢?
提前致谢 undersound
答案 0 :(得分:3)
让我们为您的代码添加一些测试和调试输出
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';
答案 1 :(得分:1)
您是否正在查看脚本也认为是当前目录的目录?你的apache进程是否有写权限?错误日志是否在此提及任何失败的命令?
答案 2 :(得分:0)
请记住,该文件是在运行进程主线程的目录中创建的。这个测量如果“主”程序在A /中并且它包括来自B中的B / a函数的函数文件,其在“。”中创建文件。在A /而不是B /
中创建它此外,没有必要调用fwrite函数3次,你可以
fwrite($file, "\n" . $name . ", " . $lastname . ", " . $email);
答案 3 :(得分:0)
如果附加到已经存在的data.txt,但没有创建一个尚不存在的文件,则很可能意味着文件权限允许写入,但文件所在的文件夹不属于Apache,因此,它无法在那里创建文件。