我的服务器上禁用了chmod(),但我仍然希望用户能够通过PHP创建只读文件,有没有办法这样做?
答案 0 :(得分:6)
你不能,因为不可能把任何东西放在只读文件中......
编辑实际上,有一种方法:
<?php
$u = umask(0377); // disables --wxrwxrwx permissions
$f = fopen("test", "w");
umask($u);
fwrite($f, "this is a test\n");
fclose($f);
?>
% php foo.php
% ls -l test
-r-------- 1 xxx xxx 14 19 May 10:27 test
% cat test
this is a test
umask
操作允许您创建读/写文件描述符,即使基础目录条目是只读的。
答案 1 :(得分:0)
作为解决方法,您可以先使用file_put_contents()
存储文件,然后使用ftp_chmod()
更改文件权限。
另一个选项是通过命令行,但如果chmod
被禁用,那么exec
也不太可能。如果您的托管人同时禁用,那么可能就有这样的理由。 (如果只是为了降低支持成本。)