ファイルの入出力で変数に当てはめる方法 - PHPプロ!Q&A掲示板
雛型ファイルを読み込み、そこに値を当てはめて、新規に出力する処理を作りたいと考えています。
そこで質問なのですが、たとえばC言語だったら、
printf("%d", hoge)
といった書き方で、%dのところにhoge変数に入ってる値を当てはめることができたかと思います。
phpでも、似たようなやり方でファイル出力をすることができるでしょうか?
たとえば、phpに取り込んだときに下記のように見えるcsvファイルがあるとします。
No,Name,Gender
%d,%s,%s
csvでのイメージは下記です。
No | Name | Gender
------------------------
%d | %s | %s
その2行目に当たる「%d,%s,%s」の部分それぞれに、DB検索で得た値を埋め込んで、
結果一覧としてcsvに出力させたいのです。
今現在は、「%d,%s,%s」のところにそれぞれ、「hoge1,hoge2,hoge3」という文字列を入れ、
php側で変数に格納させたりというやり方をとっています。
以下例
$line = array(
'0' => 'hoge1',
'1' => 'hoge2',
'2' => 'hoge3'
);
$data⇒検索結果を格納した配列
foreach($data as $key1 => $value1){
$search_result = $value1['hoge_table'];
foreach($line as $key2 => $val2){
if (empty($list)){
$list = $search_result[$val2]; //※
} else {
$list = $list . "," . $search_result[$val2];
}
}
}
上記の書き方では、なぜか※のところで、 「Undefined index:hoge3」というエラーメッセージが表示されます。
項目を増やしても減らしても、最後のところに入ってる値で止まってしまいます。
未定義と怒られているようなのですが、ほかの部分ではそれは表示されないし…で、詰まってしまいました。
何か同じような問題にあたった方がいましたら、ぜひアドバイスをいただけないでしょうか?
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。