更新下代码 原来写的有坑 这个测试使用 需要注意不同操作系统平台换行符不同
<?php
// 铺单csv 文件解析生成sql
$csvFile = '/Users/admin/Desktop/铺单Sql.csv';
/**
* @param $csvFile
* @param string $eol 根据平台选择
* windows平台相当于 "\r\n";
* unix\linux平台相当于 "\n";
* mac平台相当于 "\r";
* @return mixed
* ------------------------------------------------------------
*/
function csvFileToArray($csvFile, $isHead = true, $eol = "\r")
{
$contents = file_get_contents($csvFile);
// 分行
$lineArray = explode($eol, encodeToUtf8($contents));
if ($lineArray) {
$lineArray = array_map(function ($line) {
return array_map('trim', explode(',', $line));
}, $lineArray);
}
// 第一行当做头部处理
$fieldList = array_shift($lineArray);
if ($isHead) {
foreach ($lineArray as $key => $data) {
$lineArray[$key] = array_combine($fieldList, $data);
}
}
return $lineArray;
}
$data = csvFileToArray($csvFile);
var_dump($data);
/**
* @编码格式转换
* @param $content
* @return string
* @throws Exception
* ------------------------------------------------------------
*/
function encodeToUtf8($content)
{
$newContent = iconv('', 'UTF-8', $content);
if (is_bool($newContent)) {
throw new Exception('编码错误' . $content, 500);
}
return $newContent;
}