Remplacer une ligne dans un fichier CSV (PHP)
Patrick
-
mehdib4 -
mehdib4 -
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
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:
- Remplacer une ligne dans un fichier CSV (PHP)
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
merci