请问我这个简单的PHP计数器程序哪有问题?

来源:百度知道 编辑:UC知道 时间:2024/07/03 00:56:56
<?php

$record="d:\\tmp\\count.txt";
function file_count(){
if(!file_exists($record))
{if(!file_exists(dirname($record)))
{mkdir(dirname($record),0700);}

exec("echo 0>record");
}
$f_open=fopen($record,"r+");
$f_size=filesize($record);
$count=fgets($f_open,$f_size+1);
$count++;
fseek($f_open,0);
fputs($f_open,$count);
fclose($f_open);
echo "you are the ".$count."th customer";
return $count;
}
file_count();
?>

编译时显示:

Warning: mkdir() [function.mkdir]: File exists in D:\xampp\htdocs\example2.php on line 13

Warning: fgets(): supplied argument is not a valid stream resource in D:\xampp\htdocs\example2.php on line 19

Warning: fseek(): supplied argument is not a valid stream resource in D:\xampp\htdocs\e

r+是读写方式打开,不会建立相应文件,如果想建立相应文件用w+
====================
晕,才注意。
$record="d:\\tmp\\count.txt"; 放到function里面去,或设成全局变量

D:\xampp\htdocs\example2.php第13行,mkdir函数欲创建的目录已经存在!

改法1:

<?php
function file_count(){
//PHP函数中的变量都是私有变量。。。。
$record="d:\\tmp\\count.txt";

if(!file_exists($record))
{if(!file_exists(dirname($record)))
{mkdir(dirname($record),0700);}

exec("echo 0>record");
}
$f_open=fopen($record,"r+");
$f_size=filesize($record);
$count=fgets($f_open,$f_size+1);
$count++;
fseek($f_open,0);
fputs($f_open,$count);
fclose($f_open);
echo "you are the ".$count."th customer";
return $count;
}
file_count();
?>

改法2:
<?php
//改成常量定义。。。常量不分私有的还是共有的
define("record","d:\\tmp