为什么我的服务器在我的PHP fwrite中继续创建具有0640权限的新文件?

时间:2010-09-29 17:03:43

标签: php permissions fopen chmod fwrite

我正在使用简单的fopen("w")fwrite设置在我的服务器上写一个新文件。最近,这已经任意为这些文件分配0640权限,这意味着我无法从浏览器中查看它们。但它并非每次都发生。谁能告诉我为什么?我在这里缺少什么?这是我的代码:

if ($file=fopen("$filesDir/$yr/$mo/{$tempFile[0]}.xml","wb")) {
    if(fwrite($file,$output,strlen($output))) {
        $success="YES";
        $message="File successfully built.";
    } else {
        $message="Could not write XML file.";
    }
} else {
    $message="Could not open file.";
}

2 个答案:

答案 0 :(得分:2)

我冒昧地猜测它可能与umask或你正在创建文件的目录的当前权限有关。尝试将粘性组添加到目录并保持组www-data或apache (取决于您的安装)

答案 1 :(得分:0)

它默认执行此操作,因为PHP假定您将再次读取该文件。或者,在这种情况下写入它。您可以更改php.ini文件中的默认设置。