文件权限和CHMOD:如何在创建文件时在PHP中设置777?

时间:2011-06-22 00:39:43

标签: php file file-permissions chmod

保存不存在的文件时的问题文件权限,最初是作为新文件创建的。

现在,一切顺利,保存的文件似乎具有模式644

我必须在此处更改,才能将文件另存为模式777

感谢千万的任何提示,线索或答案。我认为与此相关的代码包括:

/* write to file */

   self::writeFileContent($path, $value);

/* Write content to file
* @param string $file   Save content to wich file
* @param string $content    String that needs to be written to the file
* @return bool
*/

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    return true;
}

3 个答案:

答案 0 :(得分:22)

PHP有一个名为bool chmod(string $filename, int $mode )

的内置函数

http://php.net/function.chmod

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    chmod($file, 0777);  //changed to add the zero
    return true;
}

答案 1 :(得分:6)

您只需使用chmod()手动设置所需的权限:

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);

    // Set perms with chmod()
    chmod($file, 0777);
    return true;
}

答案 2 :(得分:2)

如果您想更改现有文件的权限,请使用chmod(更改模式):

$itWorked = chmod ("/yourdir/yourfile", 0777);

如果您希望所有新文件都具有特定权限,则需要设置umode。这是一个将默认修改应用于标准模式的过程设置。

这是一个减法的。这样,我的意思是umode 022会为您提供755777 - 022 = 755)的默认权限。

但你应该仔细考虑非常关于这两个这些选项。使用该模式创建的文件将完全不受更改保护。