Remplacer une ligne dans un fichier CSV (PHP)

Fermé
Patrick - 23 janv. 2008 à 16:15
 mehdib4 - 12 nov. 2009 à 14:16
Bonjour,

J'ai un fichier CSV.
Je cherche à remplacer la valeur d'une case dans une ligne sans changer le reste du fichier.
Je vais donc ouvrir mon fichier en lecture et écriture ('w+'), je recherche la valeur à remplacer dans la ligne, j'affecte à la variable $ligne la valeur de remplacement au bon 'endroit', et je réécris ma ligne en utilisant l'expression:

fputcsv ($id, $ligne);

$id = la variable d'ouverture du fichier
$ligne = la ligne sur laquelle j'ai fait le remplacement.



Structure de la ligne: date; hdeb;nom;hfin;

Ma question est celle-ci: l'opération fputcsv ne risque-t-elle pas de m'ajouter une ligne au fichier au lieu de la remplacer?

$nom = strtolower($_POST['nom']); // Valeur à remplacer
$date = strtolower($_POST['date']);
$hdeb = strtolower($_POST['hdeb']);
$hfin = strtolower($_POST['hifn']);
$rempl = strtolower($_POST['rempl']); //valeur de remplacement

$nom_fichier = '3.csv';
$id = fopen($nom_fichier,'w+');
while (($ligne = fgetcsv($id, 1024, ";")) !== FALSE) {
if ($ligne[0] == $date && $ligne[$j] == $nom && $ligne [$j-1] == $hdeb && $ligne[$j+1] == $hfin);
$ligne[$j] = $rempl;
fputcsv ($id, $ligne)};
else echo "Je ne trouve pas de nom à remplacer !";
fclose ($id);

Si je fais une erreur, merci de me dire comment je peux faire pour remplacer la ligne sans l'ajouter au fichier.

Patrick
A voir également:

1 réponse

Je me suis peut-être trompé de forum ...

Mille excuses !
0
bonjour ,je voudrai savoir si on peut modifiez la taille d'une colonne csv avec php,car vraiment j'ai tout essayer .
merci
0