<?php function Counter() { 
$five="00000"; 
$four="0000"; 
$three="000"; 
$two="00"; 
$one="0"; 
$counter="counternumber.dat"; 
if (!file_exists($counter)) 

$counter=fopen($counter,"w"); 
fputs($counter,"0"); 
fclose($counter); 

else 

$num=file($counter,"r"); 
$num[0]+=1;     //这里为什么不加1,断点调试结果仍未1而不是2
if($num[0]<10){ 
print "$five"."$num[0]";
}elseif($num[0]<100){ 
print "$four"."$num[0]"; 
}elseif($num[0]<1000){ 
print "$three"."$num[0]"; 
}elseif($num[0]<10000){ 
print "$two"."$num[0]"; 
}elseif($num[0]<100000){ 
print "$one"."$num[0]"; 
}else{ 
print "$num[0]"; 
} } 
$fp=fopen($counter,"w"); 
fputs($fp,"$num[0]"); 
fclose($fp); 

?> 
<html> 
<body> 
<U> 
<B> 
<FONT SIZE="9" face="verdana" COLOR="#ffcc00"> 
<?php Counter()?> 
</FONT> 
</B> 
</U> 
</body> 
</html>
页面上同时报错:Warning: file() expects parameter 2 to be long, string given in F:\php\PHPTEST\PHP Project1\PHP Project1\a.php on line 24
请帮帮忙,谢谢,新手,没多少分

解决方案 »

  1.   

    页面上同时报错:Warning: file() expects parameter 2 to be long, string given in F:\php\PHPTEST\PHP Project1\PHP Project1\a.php on line 24
    -----------------------------------------第二个参数错了, 不是这样写的,看文档http://cn2.php.net/manual/en/function.file.php
      

  2.   

    $num[0]+=1; //这里为什么不加1,断点调试结果仍未1而不是2
    -------------------------------------------------------语法没错, 可能其它地方错了
      

  3.   

    $counter=fopen($counter,"w"); 
    $num=file($counter,"r"); 
    $fp=fopen($counter,"w");它不是报第二个参数错吗?这些地方我都改成w+,以读写方式打开,可还是报同样的错啊这段代码是我从网上看的,源码考下来自己运行的,是原文,可是不知道为什么我这运行就报错,记录网站的访问人数,每次访问都加1,可是我每次打开仍然是1请帮忙看看,谢谢
      

  4.   

    http://cn2.php.net/manual/en/function.file.php看手册,第二个参数错了
      

  5.   

    $num=file($counter,"r"); 改成
    $num=file($counter); 
      

  6.   

    $num=file($counter); 运行成功了,可是为什么呢?LS能解释下吗?还有就是为什么一开始程序就进入 Counter()方法里,下面HTML里在调用一次,也就是说打开网页这个方法运行两次
      

  7.   

    file函数没有什么r方式读出的 去看下用法就知道了  
    只执行一次 因为只有HTML中有调用