加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

将CSV转换为PHP数组 – 终点问题(CR LF)

发布时间:2020-12-13 17:23:03 所属栏目:PHP教程 来源:网络整理
导读:我正在使用代码bellow将csv文件转换为数组.但是,问题是该行的结尾是CR LF,并且未检测到它,因此数组具有错误的偏移量. CR LF被忽略,并且它周围的“单元”被合并. 我怎么能重写代码来正确检测这行结束和拆分数组?或者,有没有更好的方法将csv转换为数组? 这里
我正在使用代码bellow将csv文件转换为数组.但是,问题是该行的结尾是CR LF,并且未检测到它,因此数组具有错误的偏移量. CR LF被忽略,并且它周围的“单元”被合并.

我怎么能重写代码来正确检测这行结束和拆分数组?或者,有没有更好的方法将csv转换为数组?

这里有一些类似的问题,但我还没有找到解决这个问题的方法.

谢谢.

$fileName ='test.csv';   
$csvData = file_get_contents($fileName); 
$csvNumColumns = 11; 
$csvDelim = ";"; 
$data = array_chunk(str_getcsv($csvData,$csvDelim),$csvNumColumns); 

print_r($data);

解决方法

你尝试过使用fgetcsv()吗?关于 php.net的完整信息.

来自php.net的示例用法

<?php
$row = 1;
if (($handle = fopen("test.csv","r")) !== FALSE) {
    while (($data = fgetcsv($handle,1000,",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />n";
        }
    }
    fclose($handle);
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读