por favor, tengo el siguiente array :

array(3) {
  [0]=>
  array(2) {
    [0]=>
    string(6) "lkjhgj"
    [1]=>
    string(16) "[email protected]"
  }
  [1]=>
  array(2) {
    [0]=>
    string(5) "hgjk,"
    [1]=>
    string(18) "[email protected]"
  }
  [2]=>
  array(2) {
    [0]=>
    string(9) "dddd ffff"
    [1]=>
    string(13) "[email protected]"
  }
}

Quiero ponerlo en un archivo csv, por lo que he probado :

$fichier = 'file.csv';
$fp = fopen($fichier, 'w');

foreach ($list as $fields) 
{
   fputcsv($fp, $fields);
}

fclose($fp);

header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename='.$fichier);

Pero al descargar el archivo me pareció vacía !

Por favor masters alguna idea ? Gracias de antemano

PS : Permisos 777

  • ¿De dónde $list provenir en su código de ejemplo? Qué hay ahí?
  • No veo ningún código que realmente devuelve el archivo como parte de la respuesta! Después de haber cerrado el archivo tiene que ser reabierto antes de enviarlo. Además no veo ninguna comprobación de errores en el código, fopen, fputcsv y otras operaciones de archivo puede fallar. Usted necesita para comprobar que no han devuelto FALSE
  • uso $fp= fopen('php://output', 'w'); en lugar de $fp = fopen($fichier, 'w');.. ver mi respuesta a continuación

2 Comentarios

  1. 12
     $fichier = 'file.csv';
     header( "Content-Type: text/csv;charset=utf-8" );
     header( "Content-Disposition: attachment;filename=\"$fichier\"" );
     header("Pragma: no-cache");
     header("Expires: 0");
    
     $fp= fopen('php://output', 'w');
    
     foreach ($list as $fields) 
     {
        fputcsv($fp, $fields);
     }
     fclose($fp);
     exit();
    • He probado este código. Me estoy haciendo un dañado el archivo csv. No se puede abrir el archivo. Por favor, ayudar.
    • ¿qué tipo de datos tiene? abrirlo en el bloc de notas y comprobar los datos.
    • Muchas gracias! Su buen trabajo
    • Por favor, incluya una educación explicación a este código de respuesta.
  2. 0

    Si va a guardar la matriz de las sesiones y los problemas de codificación de caracteres.

    session_start();
    $fp = fopen($_SESSION['CSV']['type'].'.csv', 'w');
    foreach ($_SESSION['CSV'] as $fields) {
        $val1 = htmlspecialchars_decode(utf8_decode(html_entity_decode($fields[0], ENT_QUOTES | ENT_XML1, 'UTF-8')));
        $val2 = htmlspecialchars_decode(utf8_decode(html_entity_decode($fields[1], ENT_QUOTES | ENT_XML1, 'UTF-8')));
        $val3 = htmlspecialchars_decode(utf8_decode(html_entity_decode($fields[2], ENT_QUOTES | ENT_XML1, 'UTF-8')));
        fputcsv($fp, array($val1,$val2,$val3,$val4,$val5));
    }
    fclose($fp);

Dejar respuesta

Please enter your comment!
Please enter your name here