ホームページ  >  記事  >  バックエンド開発  >  Linuxのfgetcsvで取得した配列要素が空文字列になる問題の解決方法_PHPチュートリアル

Linuxのfgetcsvで取得した配列要素が空文字列になる問題の解決方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:02:56977ブラウズ

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 ファイルは通常、GBK エンコードされ Excel で編集されます
// ソースコードは 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);


www.bkjia.com本当http://www.bkjia.com/PHPjc/445322.html技術記事 Linux の fgetcsv で取得した配列要素が空文字列になる問題の解決方法についてのチュートリアルを共有し、困っている友達が参照できるようにします。 CSV を使用してデータをインポートする場合、通常は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。