PHP genera CSV - ¿Cómo mostrar campos entre comillas dobles?
Publicado por Jorge (48 intervenciones) el 07/09/2020 11:48:27
Buenos días,
Desde PHP genero un documento CSV pero me encuentro que los campos que contienen más de una palabra separada por espacio en blanco están entre comillas dobles y el resto de campos no.
A continuación incluyo una muestra del resultado de generar el fichero CSV:
Me gustaría que todos los campos fueran delimitados por comillas dobles, pero no consigo que sea así.
No hago más que obtener los datos de la base de datos y meterlos en array.
Array de cabecera (línea CAB en CSV):
Array de las líneas (líneas LIN en CSV):
Generar CSV:
Donde la función generarCSV es:
Por favor, ¿podéis ayudarme?, ¿cómo puedo indicarle para que genere el CSV con comillas dobles en todos los campos? Gracias de antemano!
Saludos.
Desde PHP genero un documento CSV pero me encuentro que los campos que contienen más de una palabra separada por espacio en blanco están entre comillas dobles y el resto de campos no.
A continuación incluyo una muestra del resultado de generar el fichero CSV:
1
2
3
4
5
CAB;AUVVGED/C0057/2020;"AUV VGED";"Juan Antonio Luque";"Safamotor Audi (54A52) Avda. Velázquez, 468, ";ES;29004;Málaga;650488116;;
LIN;AUVVGED/C0057/2020;WAUZZZF23LN100737;1
LIN;AUVVGED/C0057/2020;WAUZZZF33M1012336;1
LIN;AUVVGED/C0057/2020;WAUZZZF34M1008859;1
LIN;AUVVGED/C0057/2020;WAUZZZF3XM1009076;1
Me gustaría que todos los campos fueran delimitados por comillas dobles, pero no consigo que sea así.
No hago más que obtener los datos de la base de datos y meterlos en array.
Array de cabecera (línea CAB en CSV):
1
$arrDatos[0] = array("CAB",$idCOC,$nombreConcesCoc,$contacto,$direcionSinCp[1],"ES",$cp[1],$poblacion,$telefono,$pedido,"");
Array de las líneas (líneas LIN en CSV):
1
$arrDatos[$y] = array("LIN",$idCOC,$bastidor,$unidades);
Generar CSV:
1
2
$ruta = $to .'\\'.$nombreFicheroCSV.'.csv';
generarCSV($arrDatos, $ruta, $delimitador = ';', $encapsulador = '"');
Donde la función generarCSV es:
1
2
3
4
5
6
7
8
9
10
11
function generarCSV($arreglo, $ruta, $delimitador, $encapsulador)
{
$file_handle = fopen($ruta, 'w');
foreach ($arreglo as $linea) {
fputcsv($file_handle, $linea, $delimitador, $encapsulador);
}
rewind($file_handle);
fclose($file_handle);
}
Por favor, ¿podéis ayudarme?, ¿cómo puedo indicarle para que genere el CSV con comillas dobles en todos los campos? Gracias de antemano!
Saludos.
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0