【发布时间】:2010-09-29 17:03:43
【问题描述】:
我正在使用简单的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.";
}
【问题讨论】:
-
第一次写入后您是否尝试使用 PHP 手动更改 chmod?在您的代码中,您使用
fopen("wb")而不仅仅是w,这正常吗? php.net/manual/fr/function.chmod.php -
我可以在我第一次编写它之后进行 chmod,但奇怪的是它并非每次都发生,而且直到最近它根本没有发生。有些文件将立即可读,644,而同一文件夹中的其他文件则不是。
-
据我了解,
wb应该(从您链接到的同一站点收集)将$output单独保留为二进制文件,而不是尝试使其成为某种类型的文本。$output是 UTF-8,所以我认为这是最简单的方法。
标签: php permissions fopen chmod fwrite