如何使用分隔符从文本文件中填充数组?

时间:2013-12-07 16:06:05

标签: php ip

我正在用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秒的最大执行时间。哦,是的我试图把最大崩溃限制提高一点但仍然没有迹象更迭。

1 个答案:

答案 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返回数组中文件的所有行。