Php 逐行读取文件并提取值

Php 逐行读取文件并提取值,php,Php,我需要做一个例程,能够从文件中提取值,并将这些值发送到mySQL数据库 然而,在我看来,我的日常工作返回了一些奇怪的结果 这是我的代码: $file = new SplFileObject($file_name); for($i = 1 ; $i <= 5 ; $i++) //while (!$file->eof()) { $linha = $file->fgets(); echo $linha.'<br>'; $line = explode

我需要做一个例程,能够从文件中提取值,并将这些值发送到mySQL数据库

然而,在我看来,我的日常工作返回了一些奇怪的结果

这是我的代码:

$file = new SplFileObject($file_name);
for($i = 1 ; $i <= 5 ; $i++)
//while (!$file->eof())
{
    $linha = $file->fgets();
    echo $linha.'<br>';
    $line = explode(" ", $linha);
    print_r($line);
    echo '<br'>;
}
$file = null;
似乎对于每一个循环,
fgets()
函数都会返回一个“\n\r”,我不知道如何去掉它

编辑:


我使用了
trim()
str\u replace()
并得到了相同的结果,因此可能我没有得到“\n\r”

来摆脱
\r\n
使用:

$line = str_replace(array("\r", "\n", "\r\n"), array('', '', ''), $line);
我还建议使用
file\u get\u contents()
,因为它提供了一种更干净的文件读取方式:


您的第二个

文件中也缺少一个
文件的内容()
不是很大的字符串吗?我想逐行读取,因为文件有1440行。通过使用
file\u get\u contents()
例程不会很慢吗?另外,
str_replace()
似乎对我的代码不起作用。是的,我在分解字符串后复制并粘贴了它。然后,我决定在读取行之后执行此操作,并在
str_replace()
之后分解字符串。两次我都得到了相同的结果。是的,我检查了第二次

,在我的代码中我得到了正确的结果。你可以使用
文件获取内容
,然后在新行上分解
\n
,因为这只是一种更简单的方法,我已经尝试了
修剪()
stru替换()
而且它似乎不起作用。@Comum啊,那么你的文件中有空行吗?没有,文件中的每一行都有相同的值结构。当你尝试时,它和我发布的完全一样吗?似乎在这里工作。也许你可以把我们链接到输入文件是的,我就是这样做的,一次一个,两种方式同时进行。那我就把文件上传到这里。
<?php
$file = new SplFileObject($file_name);
$i = 1;
while ($i <= 5) {  
    $linha = trim($file->fgets());
    if ($linha == '') {
        continue;
    }
    echo $linha.'<br>';
    $line = explode(" ", $linha);
    print_r($line);
    echo '<br>';
    $i++;
}
$file = null;
<?php
$file = new SplFileObject($file_name);
$i = 1;
while ($i <= 5) {  
    $linha = trim($file->fgets());
    if ($linha == '') {
        continue;
    }
    echo $linha.'<br>';
    $line = explode(" ", $linha);
    print_r($line);
    echo '<br>';
    $i++;
}
$file = null;