fgets跳过行,它不会读取所有行

时间:2017-06-08 17:09:53

标签: php

我是fgets的新手,我有这段代码来读取这行,但显然直到它到达那一行它会无缘无故地跳过...这是我的txt文件中的数据,我将它转到读取。

ABCDEF1   SDDFS775A                                        QQ            O9   
ABCDEF1   SDDFS77577432B                                                            3.00                                                                                                        
ABCDEF1   1234567C     newCODE    123456       123456789                        83131          DIED
ABCDEF1   1234567C                                               999999                                9999999  999999                  999999
ABCDEF1   1234567D            20170606                51QAZZ  345DDW                                                  LOVE   

代码:

$handle = @fopen($name, 'r');
if ($handle) {
    while ($row = fgets($handle,4096)) {
        echo $row;
    }
}

我可以读到这一行

ABCDEF1   1234567C                                               999999 

但我无法阅读此行

ABCDEF1   1234567D            20170606                51QAZZ  345DDW                                                  LOVE   

有什么理由?

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是方法fgetsstring fgets ( resource $handle [, int $length ] )。第二个参数是将读取的字符的长度。请参阅文档here

您应该将第二个参数留空。试试这个:

$fp = fopen("fichero.txt", "r");
   while(!feof($fp)) {
       $linea = fgets($fp);
       echo $linea . "<br />";
}
fclose($fp);