人気ブログランキング | 話題のタグを見る

CakePHP :データをCSVで落とす

Google先生で、以下のように検索すますた。

「cakephp CSV」

すると、以下のサイトがありますた。

▼IDEA*IDEA 様
CakePHPでCSVファイルをダウンロードさせたいときの作法 | IDEA*IDEA

簡単そうだったので、上記URLの通り、早速やってみますた。
CSV落とせた!と思いきや、中身が真っ白。

そこでもう一度、ソースをよく見てみる。
$buf = "";
// ごにょごにょして$bufにUserの内容を追加
// 注意点は二つ。
// 1. 一つにまとめたい文字列は""で囲む。
// 2. 文字列内に"がある場合は""としてエスケープ
ん?
あー、なるほど、「$buf」が空っぽなのですな!
※データが空なのだから、CSVが空なのは当然でつよね…(;´Д`)

なので、データを突っ込んでみますた。
$buf = $this->Hoge->findAll(null,null,"Hoge.created DESC");
これでどーじゃー!と、再アクセス、CSVダウンロード!

「array」

え?
あー、なるほど、配列だからってことかぃ?
んー、どうやって書いたらいいのかなー。

再びGoogle先生に聞いてみる。
以下のサイトを発見。

▼拓かれた世界へ向かって 様
AXS3でCakePHPを使うための備忘録5

ふむふむ、この部分が使えそうではないでつか?
というわけで、以下を追加。
foreach ($hoge as $hoge) {
print implode(',', $hoge['hoge']);
print "\r\n";
}
再びアクセス、CSVダウンロード!
のわ!文字化けだ!

んー、てことは「mb_convert_encoding()」とか使う感じなのかすぃら…。
先のソースを以下のように変更。
foreach ($hoge as $hoge) {
print implode(',', mb_convert_encoding($hoge['hoge'],'SJIS','UTF-8'));
print "\r\n";
}
これでどーよ!
のわ!まだ文字化け!

んー…。
何でだべ…。
個別に「mb_convert_encoding()」してみまつか。
foreach ($buf as $buf) {
print
mb_convert_encoding($buf['Hoge']['id'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['created'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['name'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['age'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['sex'],'SJIS','UTF-8')
;
print "\r\n";
そして再度アクセス!CSVダウンロード!

ヽ(´ー`)ノ

文字化けせずに、CSVが落とせますたー!

これ、CSVの上に各項目タイトルみたいなのは入れれないのかな?と思って、追加してみますた。
print mb_convert_encoding('No.,作成日時,名前,年齢,性別','SJIS','UTF-8');
print '\r\n';
そして再びアクセス!CSVダウンロード!

あらーーー。
項目タイトルの行、改行してない…。

各行とタイトル行、何が違うのだ…。
20分ぐらい悩みますた。

ソースをよーく見ると以下の違いがあることに気づきますた。
▼各行の場合
print "\r\n";

▼タイトル行の場合
print '\r\n';
えー、まさかこれを「'」から「"」に変更したって、変わらないよねー。
と思ったのでつが、違いはこれぐらいしかわからないし、試しにやってみることに。
再びアクセス、CSVダウンロード。

えーーー!ソコか!ソコだったのかYO!

てなわけで、無事、CSVの上の行をタイトル行にし、2行目以下がデータという具合にできますた。
CakePHP :データをCSVで落とす_a0066158_1033834.gif


…簡単かと思っていたのでつが、かなり苦戦すますた。つが、もっと簡単なんだろうか、本当は。
…実はこの記事も2回目なんでつよね(書いてる途中で消えてしもて…)。
by bubuka_revival | 2008-09-21 10:50 | CakePHP  

BBK
投稿者:BBK
住 所:不定
職 業:不明
※無職ではない
※コメント内に「http://」を禁止。

08/05/11(日)現在
BBK市

※人口増加。
※産業発達。
※交通整備。
※防犯対策。
※環境整備。

08/04/05(土)現在
BBK市


08/01/20(日)現在
BBK市


08/01/11(金)現在
BBK市


08/01/05(土)現在
BBK市


07/12/23(日)現在
BBK市
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
UserAction Extension
SnapCrab
Hawkeye

カテゴリ
日記
gifアニメ
gifアニネタ
見た夢
ubuntu
PHPメモ
PHPイジリ
HTMLメモ
CodeIgniter
Piece Framework
CakePHP
Ethna
xampp
MyMiniCity
チャーシュー
大相撲懸賞クイズ
フリーソフト
ツキン変更
もらい物
メタボリックシンドローム2
メタボリックシンドローム
体重

以前の記事
2011年 05月
2011年 01月
2010年 12月
more...

ライフログ










検索

その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧

リンク
.。oO(βΓoG)
ぱんだのおへそⅡ
うたた寝 ろびんのすけの部屋
「geocity」に作ったページに行けます。