我不能告诉你我不得不问这个问题有多愚蠢,但是我一直在研究最简单的命令(两天)并且找不到问题。我为非重复点击计数器借了一些代码。我试图让它工作,我终于确定我无法访问存储命中的简单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);
感谢。
答案 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