0

我正在使用 5.1.6 版本,并且正在观察一个奇怪的问题。我无法从脚本创建和写入文件,而如果我明确创建文件然后运行脚本,它会写入数据。

我在这里遗漏了一些明显的东西吗?

我正在尝试的测试代码是:

$message = "Test";
$myFile = "testFile.txt";
if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
  fwrite($fh, $message."\n");
} else {
  chmod("/path/to/dir/*", 0755); //updated code
  $fh = fopen($myFile, 'w')  or die("Cannot open file \"$myFile\"...\n");
  fwrite($fh, $message) ;
}
fclose($fh);

结论:感谢大家的回复。这是一个权限问题。我更改了目录路径,它可以工作:)

4

2 回答 2

2

我有一个类似的问题,并通过将文件夹的所有者更改为apache用户来解决它。这应该为您的 php 脚本提供创建文件和写入该文件夹中文件所需的权限。我猜你将无法从 php 脚本 chown 文件夹,只能通过服务器访问(ssh 或 ftp)。至少,那是我必须走的路。

于 2013-08-08T23:48:48.157 回答
2

你的代码很好。只有 chmod 所在的行不是必需的。

注释掉chmod("/path/to/dir/*", 0755);这将 chmod 设置文件夹中的所有文件。

请参阅http://php.net/manual/en/function.chmod.php上有关chmod的 PHP 手册

$message = "Test";
$myFile = "testFile.txt";
if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
  fwrite($fh, $message."\n");
} else {

//chmod("/path/to/dir/*", 0755);
  $fh = fopen($myFile, 'w')  or die("Cannot open file \"$myFile\"...\n");
  fwrite($fh, $message) ;
}
fclose($fh);
于 2013-08-09T00:11:21.820 回答