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 de Mario Perez
1