PHP Laravel 读取 csv

PHP Laravel read csv

我有一个 CSV 文件,其中的数据是横向的 orientation.ex:

name, test name
age, 20
gender,Male

其中第一列是 headers,第二列是数据,我尝试使用 laravel maatwebsite/Excel 和读取文件后的响应,第一行被视为 headers . (nametest name)。

是否有任何方法可以使用 maatwebsite/Excel

在 laravel 中读取此类 CSV 文件

您不需要整个图书馆。 PHP 有内置函数 http://php.net/manual/en/function.str-getcsv.php

你可以使用这个功能

public function readCSV($csvFile, $array)
{
    $file_handle = fopen($csvFile, 'r');
    while (!feof($file_handle)) {
        $line_of_text[] = fgetcsv($file_handle, 0, $array['delimiter']);
    }
    fclose($file_handle);
    return $line_of_text;
}
$csvFileName = "test.csv";
$csvFile = public_path('csv/' . $csvFileName);
$this->readCSV($csvFile,array('delimiter' => ','))

正如“在线托马斯”所说,有一个原生的 PHP 函数,我发现像这样使用它最简单:

$csv = __DIR__ . '/data.csv';
$data = array_map('str_getcsv', file($csv));

警告:如果字段包含换行符,则不会产生预期的结果

如果您需要除“,”(或其他选项)以外的分隔符,请使用闭包:

$csv = __DIR__ . '/data.csv';
$data = array_map(function ($line) {
    return str_getcsv($line, ';');
}, file($csv));