配列データをCSVでダウンロードしたい
こんばんは。お世話になっております。
題名にある「配列データをCSVで・・」に関して、2つほど質問があり投稿させていただきます。
ヤフーのAPIを利用しているのですが(テストしている段階)、検索結果は提供されたデータが配列に格納されており、それを展開して検索結果として出力しています。
と、ここで、その結果をCSVでダウンロードすべく、配列データをimplodeで配列に収めて別ファイルにGETで渡し、渡されたデータをexplodeで配列に戻し、
header("Pragma: cache;");
Header("Content-type:application/vnd.ms-excel; charset=Shift_JIS");
header("Content-Disposition: inline; filename=$fname.csv");//ファイル名は一意な名前にしています。
$csv_line = implode("\n", $items);
print(mb_convert_encoding($csv_line, "SJIS", "UTF-8"));
と、やっております。
そこで質問なのですが、まず1つめ。APIで提供されているデータはUTF-8なので、上記のようにmb_convert_encoding()を使っていますが、文字化けでダウンロードしたデータを読むことが出来ません。
このような場合の対処の仕方は、どのようにすれば良いのでしょうか?
また、2つ目の質問ですが、配列データをCSVでダウンロードするために、配列データを別ファイルに渡しているのですが、上記のようなやり方では、implodeで変数に代入すると文字列が長すぎて、正常にデータを渡すことが出来ません。
当初はCSVを生成するときもヤフーに接続して・・と行っていたのですが、これだと2度アクセスすることになり(1日のアクセス数の上限が定められている)、出来れば1度のアクセスで得たデータを利用したいと考えているのですが、このような場合、配列データを別ファイルに渡すにはどのようにするのが理想なのでしょうか?(セッションの利用も試したが上手くいきませんでした)
お礼
回答ありがとうございました。 なんとか工夫して対処したいと思います。