Karp 的技术博客

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

<?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;
}

php

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2018年01月16日 04:55
9

目录

来自 《CSV 转 PHP 数组格式》
774 文章数
0 评论量
9 分类数
779 页面数
已在风雨中度过 9年277天3小时38分