CSV出力に関するご質問 - PHPプロ!Q&A掲示板
ノン・プログラマのためのPHP入門の10日目のCSV出力ですが、
私が、初心者のため、同じような処理を2回しているように見える部分があります。
それが、下記です。 str_replaceで""(2重)にしているのはCSV出力のお決まりのようですが、
このとき、"""(3重)すれば、$csv_output .= "\"" . $value["create_datetime"] . "\","; で "を囲む必要は、ないのではないでしょうか?
$sql = "SELECT * FROM anq_t WHERE del_flag != '1' ORDER BY create_datetime DESC";
$anq_list = $db->getAll($sql,DB_FETCHMODE_ASSOC);
$csv_output = "\"回答日時\",\"名前\",\"性別\",\"年代\",\"好きな動物\",\"コメント\"\n";
foreach ((array)$anq_list as $key => $value) {
foreach ($value as $key2 => $value2) {
$value[$key2] = str_replace('"', '""', $value2); ←ここの処理
}
$csv_output .= "\"" . $value["create_datetime"] . "\",";
$csv_output .= "\"" . $value["name"] . "\",";
私が、初心者のため、同じような処理を2回しているように見える部分があります。
それが、下記です。 str_replaceで""(2重)にしているのはCSV出力のお決まりのようですが、
このとき、"""(3重)すれば、$csv_output .= "\"" . $value["create_datetime"] . "\","; で "を囲む必要は、ないのではないでしょうか?
$sql = "SELECT * FROM anq_t WHERE del_flag != '1' ORDER BY create_datetime DESC";
$anq_list = $db->getAll($sql,DB_FETCHMODE_ASSOC);
$csv_output = "\"回答日時\",\"名前\",\"性別\",\"年代\",\"好きな動物\",\"コメント\"\n";
foreach ((array)$anq_list as $key => $value) {
foreach ($value as $key2 => $value2) {
$value[$key2] = str_replace('"', '""', $value2); ←ここの処理
}
$csv_output .= "\"" . $value["create_datetime"] . "\",";
$csv_output .= "\"" . $value["name"] . "\",";




ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!