PHP处理表格数据乱码,转整型变为0

1、导出excel,将数字列用excel转成对应类型

2、使用excel将excel转成csv,将数字列用excel转成对应额理性

3、即便前面三次都处理了,还是要注意,是否数字列仍然隐含格式字符,可以用两种方法发现

  • 转换成对应类型结果为0(字符串转整型时,如果第一位不是数字字符串,则直接转成0)
  • 因为csv中的数据都是string类型,所以使用strlen计算,发现比实际看到的长

4、根据实际情况,处理数字字段,下面代码可以让你看到字符串的乱码在哪,一般都是在开头。

for($i = 0; $i <= count($data[0]); $i++){
    echo $data[0][$i] . '|';
}

     我在处理的时候,发现我的id开头有的是三个乱码字符,而有的没有,所以需要区别处理

5、最终代码

 $handle = fopen('./why.csv', 'r');
            if (!$handle) {
                exit('读取文件失败');
            }

            while (($data = fgetcsv($handle)) !== false) {

                if(empty($data[1])){
                    continue;
                }
                if (empty((int)$data[0])){
                    $id = (int)substr($data[0], 3);
                }else{
                    $id = (int)$data[0];
                }

            }

            fclose($handle);
发布了200 篇原创文章 · 获赞 26 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/why444216978/article/details/103314401