Php 使用Laravel读取文件内容

Php 使用Laravel读取文件内容,php,laravel,Php,Laravel,我正试图用Laravel逐行阅读文件的内容。 然而,我似乎在任何地方都找不到关于它的任何东西 我应该使用fopen函数还是可以使用File::get()函数 我已经检查了API,但似乎没有读取文件内容的函数。您可以使用简单的PHP: foreach(file('yourfile.txt') as $line) { // loop with $line for each line of yourfile.txt } 您可以使用以下命令获取内容: $content = File::get(

我正试图用Laravel逐行阅读文件的内容。 然而,我似乎在任何地方都找不到关于它的任何东西

我应该使用fopen函数还是可以使用File::get()函数


我已经检查了API,但似乎没有读取文件内容的函数。

您可以使用简单的PHP:

foreach(file('yourfile.txt') as $line) {
    // loop with $line for each line of yourfile.txt
}

您可以使用以下命令获取内容:

$content = File::get($filename);
如果找不到,它将返回一个
illighted\Filesystem\FileNotFoundException
。如果要获取远程内容,可以使用:

$content = File::getRemote($url);
如果未找到,将返回
false

当您拥有该文件时,您不需要特定于laravel的方法来处理数据。现在您需要使用php中的内容。如果你不想读这些台词,你可以像@kylek所描述的那样:

 foreach($content as $line) {
    //use $line 
}
你可以用

try
{
    $contents = File::get($filename);
}
catch (Illuminate\Contracts\Filesystem\FileNotFoundException $exception)
{
    die("The file doesn't exist");
}

您可以这样做:


$file = '/home/albert/myfile.txt';//the path of your file
$conn = Storage::disk('my_disk');//configured in the file filesystems.php
$stream = $conn->readStream($file);
while (($line = fgets($stream, 4096)) !== false) {
   //$line is the string var of your line from your file
}


Laravel中没有任何本机方法/函数可以实现这一点。希望抓取一个处理文件的包,或者像您开始做的那样,自己手动完成。谢谢,我认为有一些东西,因为您可以使用file::get($path)获取文件。那我就发展我自己的方法!不久前,当我遇到这个问题时,我也这么想。不幸的是,
File::get()
方法使用
File\u get\u contents()
返回文件的全部内容。这就是我正在做的,我只是想知道是否有一个Laravel函数可以做到这一点。Laravel怎么能短于1行?这应该是公认的答案
file()
以数组形式返回文件的内容
File::get
File\u get\u contents
都以字符串的形式返回内容,然后需要通过分隔符将内容解析为数组。这对我不起作用,因为正如Victor指出的,$content将包含字符串,而不是数组。尝试此操作时,我得到一个“为foreach()提供的参数无效”。只需使用上面的答案,并使用file()读取初始文件即可。我使用了$content=file::get($filename);获取对未定义方法illumb\Http\File::get()的错误调用。@Pax
File
的正确类是
illumb\Support\Facades\File
,但您需要将
存储
与Laravel 7+一起使用
explode(PHP_EOL,$content)
来获取行数组中的内容