PHP:创建没有chmod()的只读文件

时间:2011-05-19 09:13:18

标签: php chmod

我的服务器上禁用了chmod(),但我仍然希望用户能够通过PHP创建只读文件,有没有办法这样做?

2 个答案:

答案 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也不太可能。如果您的托管人同时禁用,那么可能就有这样的理由。 (如果只是为了降低支持成本。)