PHP : Fonction "fwrite"

Fermé
eXo - 6 mai 2009 à 08:56
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 6 mai 2009 à 12:56
Bonjour,

Alors, ce que je recherche a faire, c'est modifier un ligne existante dans un fichier csv. Je récupere le contenu du fichier dans $handle, ensuite je crée ma nouvelle ligne $ligne[$l] à l'endroit déterminé par $l et j'implode $imp pour concaténé le tout $imp = implode($lignes,"");

Mon probleme est que lorsque j'écris le nouveau tableau , fwrite($handle,$imp); j'obitiens comme résultat le fichier réécris sans ma nouvelle ligne... il me manque que sa ..

Si quelqu'un peu m'aider.

Merci d'avance..

Le code :


$i=1;
$handle = fopen("listePilote/pilotage.csv", "r+");
while ($data = fgets($handle, 4096)) {
$lignes[$i] = $data;
$i++;
}
fclose($handle);
//création temporaire de la nouvelle lignes
$lignes[$l] = array("$pilote;","$dateu;","$incident;","$prise_incident;","$environement;","$job_er;","$abend;","$job_erreur;","$job_repri;","$relance;","$hors_perim;","$respect_20mn;","$asset;","$log_erreur;","$diag_pilote;","$topx;","$escalade;","$escalade_justif;","$banque;","$partition;","$commentaire\n");

$imp = implode($lignes,"");
echo $imp;

// ouverture du fichier et concaténation des infos
$handle = fopen("listePilote/pilotage.csv", "w+");
fwrite($handle,$imp);
fclose($handle);
A voir également:

1 réponse

pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
6 mai 2009 à 12:56
Le code suivant devrait faire ce que tu veux :
<?php
// Lecture du fichier csv
$i=0;
$lignes = array();
$handle = fopen( 'listePilote/pilotage.csv', 'r+' ); 
while ( $data = fgetcsv( $handle ) ) { 
  if ( $i != $l ) {
    $lignes[$i] = $data; 
  } else {
    $lignes[$i] = array();
  }
  $i++; 
}

// On insère notre nouvelle ligne à sa pasition dans la liste
$lignes[$l] = array( $pilote, $dateu, $incident, $prise_incident, 
    $environement, $job_er, $abend, $job_erreur, $job_repri, 
    $relance, $hors_perim, $respect_20mn, $asset, $log_erreur, 
    $diag_pilote, $topx, $escalade, $escalade_justif, $banque, 
    $partition, $commentaire ); 

foreach ( $lignes as $line ) {
  fputcsv( $handle, $ligne ); 
}
fclose( $handle );
?>
1