PHP Laravel 读取 csv
PHP Laravel read csv
我有一个 CSV 文件,其中的数据是横向的 orientation.ex:
name, test name
age, 20
gender,Male
其中第一列是 headers,第二列是数据,我尝试使用 laravel maatwebsite/Excel
和读取文件后的响应,第一行被视为 headers . (name
和 test 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));
我有一个 CSV 文件,其中的数据是横向的 orientation.ex:
name, test name
age, 20
gender,Male
其中第一列是 headers,第二列是数据,我尝试使用 laravel maatwebsite/Excel
和读取文件后的响应,第一行被视为 headers . (name
和 test 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));