无法获得fopen打开文件

Jim*_*ond -1 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);
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*Jon 5

这是错的:

$handle = fopen('$filename', 'r'); // tries to open a file named $filename
Run Code Online (Sandbox Code Playgroud)

它应该这样写:

$handle = fopen($filename, 'r');   // no quotes, opens countfix.txt
Run Code Online (Sandbox Code Playgroud)

您可能打算写这个:

$handle = fopen("$filename", 'r');
Run Code Online (Sandbox Code Playgroud)

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

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

fread($handle, $current_inc) or die ("Can't open file");
Run Code Online (Sandbox Code Playgroud)

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