> php教程 > php手册 > 본문

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

WBOY
풀어 주다: 2016-06-02 09:14:15
원래의
1199명이 탐색했습니다.

分享一篇关于linux中fgetcsv取得的数组元素为空字符串的解决方法的教程,有需要的朋友可以参考一下.

使用CSV导入数据的时候,我们通常用的是Windows系统,使用GBK在Windows的Excel中编辑.但服务器上,很多使用Linux服务器,源程序使用UTF-8,这样很容易产生字符编码的问题.如果仅仅将CSV文件转码为UTF-8,这样在Windows服务器上没有问题,而在RedHat5.5上,用fgetcsv取得的数组中,如果某列的内容是中文,则该列对应的数组元素为空字符串,而英文则正常.这时,需要设置区域如下:

setlocale(LC_ALL, 'zh_CN.UTF-8');

PHP实例代码如下:

// 上传的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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿