Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como escapar do delimitador do conteúdo da coluna ao exportar csv


Basta usar fputcsv ele cuida de escapar e produzir dados csv corretos.
<?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);
?>

Saída:
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Editar


Você sempre pode usar uma combinação de tmpfile para abrir um arquivo que será excluído automaticamente ao final da solicitação, escreva nele e depois que o relatório for criado, envie seu conteúdo com frear . Você tem que usar fread já que tmpfile retorna um recurso, caso contrário você pode usar tempnam + file_get_contents mas, nesse caso, você deve abrir o arquivo e limpá-lo depois de lê-lo sozinho.