PHP - PHP genera CSV - ¿Cómo mostrar campos entre comillas dobles?

 
Vista:

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:

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 claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

PHP genera CSV - ¿Cómo mostrar campos entre comillas dobles?

Publicado por Jorge (48 intervenciones) el 08/09/2020 10:04:07
Buenos días,

No os preocupéis después de hacer muchas pruebas he dado con la clave.

Por cada campo le fuerzo yo las comillas dobles concatenandoselas y cuando hago el fputcsv no le paso doble comilla como encapsulador.

Con esto queda solucionado. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar