我是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
有什么理由?
答案 0 :(得分:1)
您的代码存在的问题是方法fgets
:string fgets ( resource $handle [, int $length ] )
。第二个参数是将读取的字符的长度。请参阅文档here
您应该将第二个参数留空。试试这个:
$fp = fopen("fichero.txt", "r");
while(!feof($fp)) {
$linea = fgets($fp);
echo $linea . "<br />";
}
fclose($fp);