Como eliminar las comillas dobles al crear un archivo csv con fputcsv

Con el siguiente código extraigo datos de una base de datos y genero un archivo csv:

¿
<?php
$sql="SELECT * FROM listado WHERE idprueba='".$idPrueba."'";
    $result=mysqli_query($conexion, $sql) or die(mysqli_error($conexion));
    $num_rows=mysqli_num_rows($result);
    if($num_rows > 0){
        $delimiter = ";";
        $filename = "listados_" . date('Ymd') . ".csv";
        //create a file pointer
        $f = fopen('php://memory', 'w');
//output each row of the data, format line as csv and write to file pointer
        while($row = mysqli_fetch_array($result)){
            //$status = ($row['status'] == '1')?'Active':'Inactive';
            $lineData = array('0', strtoupper(iconv('UTF-8', 'ASCII//TRANSLIT', $row['nombre'])), strtoupper(iconv('UTF-8', 'ASCII//TRANSLIT', $row['apellido'])), trim($row['club']));
            fputcsv($f, $lineData, $delimiter);
        }
        //move back to beginning of file
        fseek($f, 0);
        //set headers to download file rather than displayed
        header('Content-Type: text/csv');
        header('Content-Disposition: attachment; filename="' . $filename . '";');
        //output all remaining data on a file pointer
        fpassthru($f);
?>

El problema lo tengo en que cuando un campo tiene un espacio en blanco me genera el csv con comillas dobles en ese campo en concreto. Por ejemplo si un campo tiene un nombre compuesto JOSE LUIS, el csv lo mete entre comillas, si no tiene ningún espacio en blanco no lo mete entre comillas.

He probado con str_replace y otros que he encontrado, pero no hay manera de que no incluya esas comillas dobles...

¿Alguna ayuda?

1 respuesta

Respuesta
1

Indagando encontré la solución, en lugar de usar FPUTCSV he usado FPUTS, añadiéndole PHP_EOL:

fputs($f,implode(';', $lineData).PHP_EOL);

Con esto queda solucionado, por si a alguien le ha pasado...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas