poner coma como separador en la exportación a CSV en php

Tengo que obtener datos de mysql en un archivo CSV al hacer clic en el botón de descarga. El código siguiente exporta datos con éxito pero agrega espacio como separador. Pero necesito que la coma sea separador, no espacio, ya que hay espacio en los datos de mysql y también en el encabezado estático del archivo csv.

El código HTML está abajo.

Y la exportación al código csv está abajo.

 'head part1','1'=>'head part2','2'=>'head part3','3'=>'head part4','4'=>'head part5'); $headerr = echocsv($title); $sql = "SELECT * FROM table_name"; $query = mysql_query($sql); while($rs = mysql_fetch_array($query)) { $name = $rs["name"]; $line = array('0'=>$name,'1'=>'','2'=>'','3'=>'','4'=>''); echocsv($line); //$content .= "\n"; } } 

La salida en un archivo .CSV se ve a continuación.

 head ---------- name1 name2 name3 

Como puedes ver, he puesto el nombre de la primera columna como ‘cabeza parte1’, pero se mostrará como ‘cabeza’ como su espacio de toma como separador.

Entonces el nombre de la segunda columna toma esto.

 part1,head ---------- 

y el nombre de la tercera columna toma esto.

 part2,head ---------- 

y así. Entonces, ¿cómo usar una coma para ser separador al exportar un archivo CSV en php?

No escriba el archivo csv manualmente. Use la función incorporada.

por ejemplo, http://uk3.php.net/manual/en/function.fputcsv.php

 < ?php $delimiter = ','; $enclosure = '"'; $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, $delimiter, $enclosure); } fclose($fp); ?> 

El código anterior creará un archivo llamado file.csv con sus datos en él. Si luego desea enviar este archivo al usuario como un archivo CSV, puede hacer esto:

 < ?php // Send the generated csv file to the browser as a download header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=file.csv"); header("Pragma: no-cache"); header("Expires: 0"); readfile('file.csv'); ?> 

Alternativamente, puede enviar el archivo CSV para descargarlo directamente sin crear el archivo en un servidor como este:

 < ?php // mini-config $delimiter = ','; // Your data $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); // Send headers header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=file.csv"); header("Pragma: no-cache"); header("Expires: 0"); // Output csv data foreach ($list as $row) { echo implode($delimiter, $row) . "\r\n"; } ?> 

Espero que esto ayude.