【问题标题】:Cannot write to a file using php无法使用php写入文件
【发布时间】:2012-10-16 10:48:56
【问题描述】:

我见过类似的问题,但答案对我没有帮助。我正在使用下面的代码。我已经检查过,正在读取文件,它将在页面上输出 count.txt 中的数字。 $hit_count 确实在增加(我在测试中回应了这一点)。 count.txt 具有权限 777count.txt 与我希望数据出现的页面位于同一目录中。我不知道下一步该做什么。这是非常简单的代码,我已经搜索了几个小时的答案。

<?php
$hit_count = @file_get_contents('count.txt'); // read the hit count from file
echo "Site visits since Jun 30,2012: ";
echo $hit_count; //  display the hit count
$hit_count++; // increment the hit count by 1
@file_put_contents('count.txt',  $hit_count); // store the new hit count
?>

如果我删除 @ 符号来测试错误,我会得到以下信息:

警告:file_put_contents(count.txt) [function.file-put-contents]:无法打开流:第 220 行的 D:\Hosting\9541237\html\indexTEST.php 中的权限被拒绝

什么权限? count.txt777

【问题讨论】:

  • 不要使用@ 来抑制错误;它们的存在是有原因的。相反,编写不会产生错误的代码。
  • count.txt 与您的 .php 文件在同一个文件夹中?
  • 警告很明确:你没有写权限。所以,再次检查文件权限(如果它在 Windows 上真的有 777,我会非常惊讶)。
  • 文件夹也需要有执行权限,否则无法列出文件夹中的任何文件,所以PHP不知道count.txt在磁盘上的起始位置。
  • 我知道我在公共、全局和私有上都有 rwx 似乎很清楚 - 抱歉,我使用 777 来表示相同的意思。

标签: php permissions file-get-contents


【解决方案1】:

我会检查一下 php 认为您的文件权限正在使用 fileperms。 有关详细信息,请参阅this 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2017-06-28
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多