我可以使用以下代码编写.txt文件,但无法使用本地主机上的php文件(现有或使用以下代码新创建)。
它也正确地回显字符串长度,没有任何错误通知或警告
<?php
$file = fopen("test.php","w");
echo fwrite($file,"do not vote me down");
fclose($file);
?>
提前致谢
答案 0 :(得分:3)
可能是所有权问题。尝试执行chmod -R 775 /var/www/folder
和/或chown -R domain:www-data /var/www/folder
- 其中domain是特定虚拟主机或www-data的用户
另外,要更新文件而不是重写,您可以使用追加选项 - 如果文件不存在,添加+
将有助于首次创建文件。
$file = fopen("test.php","a+");
echo fwrite($file,"do not vote me down ab");
fclose($file);
如果您想更改文件的所有权,可以使用Php chown
功能 -
chown('test.php','apache');
过度更改文件或文件夹的权限会重复使用此代码 -
exec ("find /path/to/folder -type d -exec chmod 0750 {} +");
exec ("find /path/to/folder -type f -exec chmod 0644 {} +");
答案 1 :(得分:0)
也许您的文件无法打开,因此您可以在fopen()之后添加die()函数,请查看以下代码: -
<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
答案 2 :(得分:0)
您的代码有效。只要test.php具有适当的文件权限,我就可以重写内容。