PHP:使用fgets()和fscanf()将它们读入变量

时间:2017-08-22 00:38:17

标签: php while-loop file-handling fgets

我是PHP的新手,我很难理解为什么我的代码无效。任何人都可以看到为什么这是?? 对于我的代码,我试图使用fgets()fscanf()的组合来阅读文本文件,我想将它们放入一组变量中。我想在文件达到EOF时返回false,我希望它在文本编辑器中将这些记录读入变量并回显它们的输出。

    $fp = fopen ("branches.txt", "r");
    while ($branch = fgets ($fp)) {
        $branch=trim($branch);
        if (filesize('branches.txt') == 0){
           echo "The file is DEFINITELY empty";
        }
        printf("%2d: ");
        if ($branch === FALSE) print ("FALSE\n");
        else print ($branch . "</br>");
    }
    while ($info = fscanf($fp, "%i %lf %lf")) {
       list ($properties, $income, $expenditure) = $info;
       echo $info;
    }
    fclose ($fp);

文字编辑:位置/字符串       Integer Float Float

即热 12 160.0 77.0

1 个答案:

答案 0 :(得分:0)

下面

  

printf(&#34;%2d:&#34;);

缺少int值。

您已经将文件(while ($branch = fgets ($fp)))读取到了EOF。现在,您需要在使用while ($info = fscanf($fp, "%i %lf %lf"))读取文件之前重置指针。

rewind($fp);
while ($info = fscanf($fp, "%i %lf %lf")) {
.....

点击此链接了解更多信息: http://php.net/manual/en/function.rewind.php