Linux fgetcsv取得的数组元素为空字符串的解决方法

 更新时间:2011年11月25日 00:41:59   作者:  
使用CSV导入数据的时候,我们通常用的是Windows系统,使用GBK在Windows的Excel中编辑
但服务器上,很多使用Linux服务器,源程序使用UTF-8,这样很容易产生字符编码的问题.

如果仅仅将CSV文件转码为UTF-8,这样在Windows服务器上没有问题,

而在RedHat5.5上,用fgetcsv取得的数组中,如果某列的内容是中文,则该列对应的数组元素为空字符串,而英文则正常.

这时,需要设置区域:

setlocale(LC_ALL, 'zh_CN.UTF-8');
代码如下
复制代码 代码如下:

// 上传的CSV文件,通常是用Excel编辑的GBK编码,
// 而源代码是UTF-8,需要进行转码处理
file_put_contents($new_file, iconv('GBK', 'UTF-8', file_get_contents($new_file)));

//ini_set('auto_detect_line_endings', true);
// 设置区域:简体中文,UTF-8编码
setlocale(LC_ALL, 'zh_CN.UTF-8');
// 打开CSV文件
$handle = fopen($new_file, 'r');
// 取出列头
$data_heads = fgetcsv($handle);

相关文章

  • PHP+jQuery实现自动补全功能源码

    PHP+jQuery实现自动补全功能源码

    前面手工写了一个下拉自动补全功能,写的简单,只实现了鼠标选择的功能,不支持键盘选择,下面与大家分享下PHP+jQuery实现自动补全功能
    2013-05-05
  • 解析isset与is_null的区别

    解析isset与is_null的区别

    isset是语句, 和echo, print一样, 是PHP本身的一种语言结构. 而is_null是函数, 和我们一般的函数一样, 可以做为可变函数调用
    2013-08-08
  • PHP简单实现文本计数器的方法

    PHP简单实现文本计数器的方法

    这篇文章主要介绍了PHP简单实现文本计数器的方法,涉及PHP针对文本文件的简单判断,读取及写入等操作技巧,需要的朋友可以参考下
    2016-04-04
  • 基于laravel制作APP接口(API)

    基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下
    2016-03-03
  • 封装一个PHP可控限速下载文件的方法

    封装一个PHP可控限速下载文件的方法

    这篇文章给大家介绍了封装一个PHP可控限速下载文件的方法,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • 如何在PHP中读写文件

    如何在PHP中读写文件

    这篇文章主要介绍了如何在PHP中读写文件,帮助大家更好的理解和学习php,感兴趣的朋友可以了解下
    2020-09-09
  • php设计模式 Visitor 访问者模式

    php设计模式 Visitor 访问者模式

    表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    2011-06-06
  • PHP生成网站桌面快捷方式代码分享

    PHP生成网站桌面快捷方式代码分享

    这篇文章主要介绍了PHP生成网站桌面快捷方式代码分享,代码很简单,复制改一下域名即可使用,需要的朋友可以参考下
    2014-10-10
  • PHP学习之数组值的操作

    PHP学习之数组值的操作

    PHP中,用list来析取数组中的值,如list($a, $b) = $array。
    2011-04-04
  • php文件上传你必须知道的几点

    php文件上传你必须知道的几点

    这篇文章主要介绍了php文件上传你必须知道的几点,只有真正的理解了这些知识点,打好基础,才能熟练掌握php文件上传功能的实现。
    2015-10-10

最新评论