Recherche de solution concernant un export CSV
Bonjour à tous,
Je rencontre un souci sur un export CSV.
J'utilise ma fonction sur de nombreux export et fonctionne dans tout les cas,
sauf 1 seul, lorsque je dois exporter plus de 12000 lignes.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
// On crée le fichier temp et on l'ouvre en écriture
$tmpFile = tempnam('/tmp', 'ExtractionAbonnement--');
$handle = fopen($tmpFile, "w");
// On récupère chaque ligne du résultat
$colonne = 0;
while($ligne = $sth->fetch(PDO::FETCH_ASSOC)){
// On écrit la ligne des colonnes
if($colonne == 0){
foreach($ligne as $col => $val){
// On écrit une ligne de resultat
fwrite($handle, "$col;");
}
fwrite($handle, "\n");
$colonne = 1;
}
// On écrit une ligne de resultat
foreach($ligne as $col => $val){
$val = FormatExport($val);
fwrite($handle, "$val;");
}
fwrite($handle, "\n");
}
//echo $handle;
// On transfère le contenu du fichier dans un tableau
$tabFile = file($handle);
//$tabFile = fgets($handle,16384);
//$tabFile = fgets($tmpFile);
// On parcours le tableau
$i=0;
while($i < count($tabFile)){
echo $tabFile[$i];
$i++;
}
//copy($tmpFile,"/tmp/exportAbo.csv");
// On ferme et détruit le fichier
fclose($handle);
unlink($tmpFile); |
Le fichier est correctement créé et rempli dans le dossier /tmp, mais ne s'ouvre pas, contrairement aux autres cas d'utilisation.
Cette même fonction fonctionne lorsque je réduis le nombre de valeur utilisée en dessous de 12000 lignes.
J’espère avoir été clair dans mon explication.
Nheil