Utilisez simplement fputcsv il prend soin d'échapper et de produire des données csv correctes.
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
Sortie :
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
Modifier
Vous pouvez toujours utiliser une combinaison de tmpfile pour ouvrir un fichier qui sera automatiquement supprimé à la fin de la requête, écrivez-y puis, une fois le rapport créé, affichez son contenu avec fread . Vous devez utiliser fread puisque tmpfile renvoie une ressource, sinon vous pouvez utiliser tempnam + file_get_contents mais dans ce cas, vous devez ouvrir le fichier et le nettoyer après l'avoir lu par vous-même.