質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

9698閲覧

php7 csv パースずれ

nerd

総合スコア37

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/05/08 10:50

###前提・実現したいこと
php ver7 にてCSVを取り込みをしたいです。

###発生している問題・エラーメッセージ
SplFileObject にてCSVを取り込みをしていたのですが、列が不正確なまま取り込まれてしまいます。
csvで以下のデーターを取り込んだ時に
"aaa","bbb","ccc","ddd"

"aaa bbb","ccc ddd"
のような形で配列になってしまいます。
CSVの列が不正確な形で取り込まれてしまいます。

同じコードでver 5.6 で取り込んでみるときれいに取り込みができております。

PHP7にてCSV取り込みをする際に以下URLを参照して問題となっている部分を推測してみたのですが
いまいち理解できておりません。
サーバー上では問題なく動作するようですが、テスト環境でも同様の動作をさせたく思っております。
WINDOWSのlocaleの問題になると思うのですが、皆さんはどのように回避しているのでしょうか。

https://github.com/EC-CUBE/ec-cube/issues/1780

vagrantでphp7をご使用されている場合は同様の事象は発生していないのでしょうか。
XAMPP + PHP7 特有の問題なのかご教授お願いいたします。

テスト環境
XAMPP Windows / 7.1.2
CSVの文字コードは SHIFT-JIS です。

setlocale(LC_ALL, 'ja_JP.UTF-8'); $file_neme = $_FILES['aaa']['name']; $file_path = $_FILES['aaa']['tmp_name']; $data = file_get_contents($file_path); $data = mb_convert_encoding($data, 'UTF-8', 'sjis-win'); $temp = tmpfile(); $csv = array(); fwrite($temp, $data); rewind($temp); while (($data = fgetcsv($temp, 0, ",")) !== FALSE) { $csv[] = $data; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のサイトを参考にしてください

Windows 環境だと setlocale(LC_ALL, 'ja_JP.UTF-8') が効かない : 犬ターネット

ほんと、ひどい仕様ですよね・・・。

投稿2017/05/08 21:04

編集2017/05/09 00:52
miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nerd

2017/05/09 03:34

ご回答ありがとうございました。 この形での開発が一般的になっていくのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問