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

WBOY
リリース: 2016-07-21 15:22:57
オリジナル
1308 人が閲覧しました

ただし、サーバーでは 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);

http://www.bkjia.com/PHPjc/324536.html

tru​​ehttp://www.bkjia.com/PHPjc/324536.html技術記事ただし、サーバーでは Linux サーバーが使用されていることが多く、ソース プログラムが UTF-8 を使用しているため、文字エンコードの問題が発生しやすいため、CSV ファイルを UTF-8 にトランスコードするだけであれば、Windows サーバーでは問題ありません。 .
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート