无法获得fopen打开文件

时间:2013-11-30 15:46:57

标签: php file

我不能告诉你我不得不问这个问题有多愚蠢,但是我一直在研究最简单的命令(两天)并且找不到问题。我为非重复点击计数器借了一些代码。我试图让它工作,我终于确定我无法访问存储命中的简单txt文件或存储IP地址的文件。我已经在这里阅读了这些问题,在“傻瓜”书中查看了命令,甚至观看了YouTube视频,我对这个问题视而不见。我已经尝试使用字符串作为文件名并直接使用文件名。我将文件放在服务器上的子文件夹中,并认为可能是问题所以我将它们移动到具有相同错误的根目录。如果有人能够理解为什么这不起作用,我会永远感激。

这只是整个代码的一部分,但我确定它失败了。

        $filename = 'countfix.txt';     
            $handle = fopen('$filename', 'r');
            fread($handle, $current_inc)
                or die ("Can't open file");
                echo $current_inc;
            fclose($handle);

感谢。

2 个答案:

答案 0 :(得分:5)

这是错误的:

$handle = fopen('$filename', 'r'); // tries to open a file named $filename

应该这样写:

$handle = fopen($filename, 'r');   // no quotes, opens countfix.txt

您可能打算写这个:

$handle = fopen("$filename", 'r');

其中双引号将导致$filename的实际值被替换为字符串(从而使代码工作),但这样做没有意义。丢失报价。

此外,此代码不能执行以下操作:

fread($handle, $current_inc) or die ("Can't open file");

如果您无法从文件中读取,而不是打开它时,则会打印错误消息。您应该检查fopen的返回值,或者修改消息以使其更准确。

答案 1 :(得分:1)

这是正确的方法:

$handle = fopen("$filename", 'r');

您必须用双引号括起变量,或者根本不将它们括起来!这就是PHP的方式。

您可能需要阅读此内容:what is the difference between single quoted and double quoted strings in php