LEN

CSV 转 PHP 数组格式
更新下代码 原来写的有坑 这个测试使用 需要注意不同操作系统平台换行符不同<?php // 铺单csv 文...
扫描右侧二维码阅读全文
11
2018/02

CSV 转 PHP 数组格式

更新下代码 原来写的有坑 这个测试使用 需要注意不同操作系统平台换行符不同

<?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;
}
最后修改:2019 年 02 月 19 日 12 : 54 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论