程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> linux中fgetcsv取得的數組元素為空字符串的解決方法

linux中fgetcsv取得的數組元素為空字符串的解決方法

編輯:關於PHP編程

分享一篇關於linux中fgetcsv取得的數組元素為空字符串的解決方法的教程,有需要的朋友可以參考一下下哈。  

使用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);


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved