本篇内容主要讲解“php导入csv乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php导入csv乱码如何解决”吧!
php导入csv乱码问题的解决办法:1、构造一个解析函数“function tb_str_getcsv($string, $delimiter=',', $enclosure='"') {...}”;2、读取文件到变量;3、通过“substr($s,2)”去掉BOM头即可。
解决php导入淘宝助理csv文件乱码问题及解析
用php导入csv文件很多时候会出现中文乱码的情况,特别是导入淘宝助理数据包,在网上查了很多转码方法,都无法解决问题,这是什么原因呢?
首先,淘宝助理导出的csv文件为UTF-16LE编码,很少见是吧。
其次,它的csv文件并非逗号分隔,而是\t分割。
通过如下代码,即可实现csv文件解析功能
/** * 构造一个解析函数 * (php内置的str_getcsv不知为何会出现局部乱码,原因不详) */ function tb_str_getcsv($string, $delimiter=',', $enclosure='"') { $fp = fopen('php://temp/', 'r+'); fputs($fp, $string); rewind($fp); while($t = fgetcsv($fp, strlen($string), $delimiter, $enclosure)) { $r[] = $t; } if(count($r) ==1) return current($r); return $r; } $s = file_get_contents($path); //读取文件到变量 $s = iconv('UTF-16LE', 'utf-8', substr($s,2));//转码,substr($s,2)的作用是去掉 BOM 头 FFFE //有的第三方数据包很不规范,控制符没有用空双引号 //可能导致列数不对应,在此加上空双引号 $s = str_replace("\t\t", "\t\"\"\t", $s); $s = str_replace("\t\t", "\t\"\"\t", $s); $csv_data = tb_str_getcsv($s, "\t");//读取到数组
一、phpStudy,是一个新手入门最常用的开发环境。
二、WampServer,WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。
三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件。
四、MAMP,MAMP分为两种MAMP和MAMP Pro for Mac。
五、宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统。
六、UPUPW,UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。
到此,相信大家对“php导入csv乱码如何解决”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。