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

flocccinaucinihilipilification Linux fgetcsvで取得した配列要素が空文字列になる問題の解決方法

WBOY
WBOYオリジナル
2016-07-29 08:47:151372ブラウズ

ただし、サーバーでは 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))); auto_detect_line_endings', true);
// エリアを設定: 簡体字中国語、UTF-8 エンコード
setlocale(LC_ALL, 'zh_CN.UTF-8');
// CSV ファイルを開きます
$handle = fopen($new_file, ' r');
// 列ヘッダーを取り出します
$ data_heads = fgetcsv($handle);
以上、floccinaucinihilipilification Linux fgetcsv で取得した配列要素が空文字列になる問題の解決方法を、flocccinaucinihilipilification の内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。