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

php – 无法正确读取csv(制表符分隔)

发布时间:2020-12-13 17:43:46 所属栏目:PHP教程 来源:网络整理
导读:我有简单的csv文件,它是制表符分隔,我必须使用,因为它来自某个地方,我hvae阅读它并将其插入我的数据库我已经使用一个简单的 PHP代码来读取它 if(($handle = fopen("var/import/MMT29DEC.csv","r"))!==FALSE){ /*Skip the first row*/ fgetcsv($handle,1000,c
我有简单的csv文件,它是制表符分隔,我必须使用,因为它来自某个地方,我hvae阅读它并将其插入我的数据库我已经使用一个简单的 PHP代码来读取它

if(($handle = fopen("var/import/MMT29DEC.csv","r"))!==FALSE){
            /*Skip the first row*/
            fgetcsv($handle,1000,chr(9));
            while(($data = fgetcsv($handle,chr(9)))!==FALSE){
                    print_r($data[0]);
                        }
}

当print_r显示它的数据时

Array ( [0] => 01SATAPC [1] => 40ATAPC [2] => [3] => 21P [4] => SERIAL ATA POWER CABLE [5] => 0.00 [6] => 2.00 [7] => 0 [8] => Power Supplies [9] => SERIAL ATA POWER CABLE [10] =>
4 TO 15 PIN 160MM
[11] => [12] => [13] => [14] => MELBHO [15] => 0.000 [16] => [17] => Order to Order [18] => 4 [19] => 2013-01-18 )

哪个是期望的结果,但是当我使用$data [‘index’]访问特定列值时,例如$data [8]或$data [1]它奇怪地给我垃圾值说对于一些迭代它给我正确的值但是在10-15行之后它的开始给我一些数字和其他列值…..我不要我知道这是什么,据我所知它应该是格式化问题我试过在excel中打开文件,它即将到来……

解决方法

@ravisoni你确定fgetcsv为1000的第二个参数比你文件中的最长行长吗?尝试将其设置为0,因为文档说[php.net/fgetcsv],看看是否有所作为.

if(($handle = fopen("var/import/MMT29DEC.csv",chr(9)))!==FALSE){
                    print_r($data[0]);
                        }
}

(编辑:李大同)

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

    推荐文章
      热点阅读