我的fopen()PHP有什么问题

时间:2015-08-20 03:28:43

标签: php fopen

我有这个我要保存的变量:

$counter = $counter['counter']++;

使其在刷新页面时递增。 因此,我决定使用fopen,覆盖$ counter变量然后保存它。 我还是初学者,我不知道fopen,fgets,fclose是如何工作的。

所以我写了这样的东西。

$fp = fopen("file.php","r");
fwrite($fp, $counter);
fclose($fp);

所以我想打开文件(file.php)(我正在编写此代码FYI的文件),然后在增加后覆盖变量,然后通过关闭保存它。

但代码似乎并不想工作,变量似乎不想增加。 我究竟做错了什么? 我是否希望将此$计数器放在另一个文件中并从那里提取变量。

仅供参考:我不想使用session_start()和$ _SESSION,因为我使用的是cron作业,但它不起作用。

修改

$result = mysql_query('SELECT MIN(ID) AS min, MAX(ID) AS max FROM ytable') or exit(mysql_error()); 
$row = mysql_fetch_assoc($result); 

if($counter['counter'] < $row['max']){
    if (isset($counter['counter'])){
        $counter = $counter['counter']++;

    }else{
            $counter = $counter['counter'] = 0;
        }
 }

对于那些困惑的人来说,这是更多的代码

2 个答案:

答案 0 :(得分:2)

您可以像这样阅读文件。使用之前的计数器打开文件&amp;获取计数器,像这样递增

$counter = readfile("file.php");
$counter++;

要写入文件,请以写入模式打开文件

$fp = fopen("file.php","w");
fwrite($fp, $counter);
fclose($fp);

您正在寻找的结果是什么?

正如chris85所建议的那样,数据库被用于这种情况。最好使用数据库而不是文件处理。

答案 1 :(得分:1)

所以说你有file.txt并且包含5。在同一目录中,您有script.php;这个文件有

$counter = file_get_contents('file.txt'); // this takes in whatever value is in the file e.g in this case '5'
$counter++; // increment the value by 1 so we are now at 6
file_put_contents('file.txt', $counter); //write the value '6' back to the file
第一次加载后,

file.txt会有6