php警告的原因

<form action="index.php" method="post"> <input type="text" name="user"/> <input type="text" name="password"/> <input type="submit" value="submit"/>
</form>
<?php $user=trim$_POST[user]; $password=trim$_POST[password]; if!$user || !$password{ echo please make sure no empty input; exit; } //write to test.txt $handle=fopentest.txt,rb+; if$handle{ while$buffer=fgets$handle!==false{ preg_match/.*:.*?-/,$buffer,$array; if$array[1]===$user{ echo user exist; exit; } fwrite$handle,$user:.$user.------.$password:.$password." "; fclose$handle; } }else{ echo fail to open file; } ?> 

写的这个程序是向txt写入文字。可以实现功能,但会有警告。
Warning: fgets: 5 is not a valid stream resource in C:xampphtdocsindex.php on line 13
这个警告什么意思。怎么消除?

你这个写法就由问题,
把 fgets 写在 while 条件里,第一次读还是正常,但是正常读了之后你在 while 里把 $handle 就 close 了,那循环之后再次判断 while 的时候 fgets 读一个已经关闭的文件资源 当然就报这个警告了……

把 fclose 放在 while 之外

fclose$handle;
把这个放到while外面,你读了一次就关闭了,当然报错了

发表评论

电子邮件地址不会被公开。 必填项已用*标注