我正在用PHP编写一个程序来检查ip,现在我知道这样做更容易,但我想按照我的方式去做。这就是我到目前为止所写的内容
<?php
if($_POST) {
$file=fopen("names.txt","a") or exit("Unable to open file!");
$ipadres=fopen("ip.txt","a") or exit("Unable to open file!");
$name = $_POST['username'];
$file_content = $name. "|";
$ipadres_content = $_SERVER["REMOTE_ADDR"] . "|";
$iparray = array();
$i=0;
fputs($file,$file_content);
fputs($ipadres,$ipadres_content);
while(!feof($ipadres))
{
$iparray = explode("|", fgets($file));
}
fclose($file);
fclose($ipadres);
}
?>
正如您所看到的,我尝试使用while循环将ip-adresses放入数组中进行检查。但是当我尝试运行它时它一直运行直到它最终崩溃到这个错误=致命错误:超过30秒的最大执行时间。哦,是的我试图把最大崩溃限制提高一点但仍然没有迹象更迭。
答案 0 :(得分:1)
你的while循环有问题:
while(!feof($ipadres))
{
$iparray = explode("|", fgets($file));
}
您正在检查feof($ipadres)
并使用fgets($file)
即。你继续用文件指针$ipadres
检查文件末尾,但是从文件指针$file
读取会导致无限循环,程序最终会崩溃。
可能你的意思是:
while(!feof($ipadres)) {
$iparray = explode("|", fgets($ipadres));
}
或者使用file function返回数组中文件的所有行。