hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP问题 - 正文 请牢记本站网址www.sosophp.cn

php读取csv时,读取中文乱码题目解决方法【php题目】

2019-11-26PHP问题搜搜PHP网51°c
A+ A-

1、首先讲linux,不管是centos或许Ubuntu。在导入csv的php剧本文件头部加上以下代码:

setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));

这段代码的作用是转变剧本默许编码,由于操作系统的编码花样不是GBK所以,读取中文的时刻会乱码。

2、接着讲windows,我们在读取csv数据的时刻,会有一个while轮回遍历每一行的数据,而读取的每一行数据,就需要我们举行转义,将中文编码读取出来。代码以下:

$row = eval('return '.iconv('gbk','utf-8',var_export($row,true)).';');

$row,就是读取出来每一行的数据变量。

3、末了,贴一个fgetcsv()要领的替换函数,这类是针对有些老版本的php该函数自带着一些bug的状况。假如上边两点照样没办法处理您的题目,您能够尝试一下运用该函数,与前边两点合营运用。

function fgetcsv_reg(& $handle, $length = null, $d = ',', $e = '"') {
   $d = preg_quote($d);
   $e = preg_quote($e);
   $_line = "";
   $eof=false;
   while ($eof != true) {
       $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
       $itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
       if ($itemcnt % 2 == 0)
           $eof = true;
   }
   $_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
   $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
   preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
   $_csv_data = $_csv_matches[1];
   for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
       $_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.*)' . $e . '$/s', '$1', $_csv_data[$_csv_i]);
       $_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
   }
   return empty ($_line) ? false : $_csv_data;
}

引荐教程:PHP视频教程

以上就是php读取csv时,读取中文乱码题目处理要领的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php读取csv时,读取中文乱码题目解决方法【php题目】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章