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

2015-01-24信息快讯网

使用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); 
深入探讨:Nginx 502 Bad Gateway错误的解决方法
PHP Error与Logging函数的深入理解
基于Discuz security.inc.php代码的深入分析
ubuntu10.04配置 nginx+php-fpm模式的详解
基于Linux调试工具strace与gdb的常用命令总结
基于php socket(fsockopen)的应用实例分析
解析php中mysql_connect与mysql_pconncet的区别详解
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
基于curl数据采集之正则处理函数get_matches的使用
基于curl数据采集之单页面并行采集函数get_htmls的使用
基于curl数据采集之单页面采集函数get_html的使用
php中get_headers函数的作用及用法的详细介绍
使用php get_headers 判断URL是否有效的解决办法
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
php 团购折扣计算公式
php中$_REQUEST、$_POST、$_GET的区别和联系小结
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
PHP mb_convert_encoding文字编码的转换函数介绍
PHP及Zend Engine的线程安全模型分析
php空间不支持socket但支持curl时recaptcha的用法
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
如何在symfony中导出为CSV文件中的数据
PHP将DateTime对象转化为友好时间显示的实现代码
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
php程序的国际化实现方法(利用gettext)
php中使用Curl、socket、file_get_contents三种方法POST提交数据
PHP导出MySQL数据到Excel文件(fputcsv)
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
用PHP的超级变量$_GET获取HTML表单(Form) 数据
©2014-2024 dbsqp.com