エンクロージャーのないCSVファイルの欠点は、ユーザー入力の誤ったコンマが行を混乱させることを意味します。したがって、CSV行を書き込む前にカンマを削除する必要があります。
CSVの処理で注意が必要なのは、エンクロージャーの解析です。これにより、PHPとPEARのCSV関数が価値のあるものになります。基本的に、列はコンマで区切られ、行は改行で区切られたファイルを探しています。簡単な出発点は次のとおりです。
<?php
$col_separator= ',';
$row_separator= "\n";
$a= array(
array('my', 'values', 'are', 'awes,breakit,ome'),
array('these', 'values', 'also', "rock\nAND\nROLL")
);
function encodeRow(array $a) {
global $col_separator;
global $row_separator;
// Can't have the separators in the column data!
$a2= array();
foreach ($a as $v) {
$a2[]= str_replace(array($col_separator, $row_separator), '', $v);
}
return implode($col_separator, $a2);
}
$output= array();
foreach ($a as $row) {
$output[]= encodeRow($row);
}
echo(implode($row_separator, $output));
?>