Remplacer une ligne dans un fichier txt par formulaire

Signaler
Messages postés
8
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
13 septembre 2005
-
Messages postés
144
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
4 janvier 2010
-
Disons que j'ai un fichier txt appelé "fichier.txt", il contient des nombres comme suit :

1036
489
576
1025
666
123
874

Je veux remplacer la ligne 666 par 1099.

Voilà mon script :

<?php
// Modification d'une ligne
$fichier = "fichier.txt";
// Nom de votre fichier
$ancienNombre = 1025;
// nombre qu'on souhaite supprimer du fichier
$nouveauNombre =666;
$fp = fopen($fichier,"r");
// Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+");
// Ouverture du fichier temporaire
while (!feof($fp)) {
// Parcours du fichier
$ligne = fgets($fp,4000);
// On récupère le nombre de la ligne
if ($ligne!=$ancienNombre){
// Condition de placement
fwrite($fp_temp,$ligne);
} else {
fwrite($fp_temp,$nouveauNombre."\n");
}
}
fclose($fp);
// Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier);
// On recopie le fichier temporaire obtenu
unlink("temp.txt");
// On l'efface
$tab=file("fichier.txt");
for($i=0;$i<count($tab);$i++){
echo "$tab[$i]";
}
?>

Jusqu'ici tout va bien. Maintenant comment faire pour que l'opération se fasse par formulaire ? Du style :
<html>
<head>
<title></title>
</head>

<form method="POST" action="modif.php">
ancien nombre :

Nouveau nombre

</form>

</html>

Si quelqu'un peut m'aider s'il vous plaît, je suis un cas désespérant en php.

2 réponses

Messages postés
8
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
13 septembre 2005

J'oubliais de préciser que je travaille en register_global à off
Messages postés
144
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
4 janvier 2010

Salut

Je reprends ton code que tu as balancé au dessus. En gras mes ajouts
<?
//-- Empêche les erreurs e-notice
$ancien = !isset($_POST['ancien']) ? '' : $_POST['ancien'];
$nouveau = !isset($_POST['nouveau']) ? '' : $_POST['nouveau'];

//-- Test si on a saisi quelquechose dans le form
if($ancien != '' && $nouveau != '')
{

// Modification d'une ligne
$fichier = "fichier.txt";
// Nom de votre fichier
$ancienNombre = $ancien ;
// nombre qu'on souhaite supprimer du fichier
$nouveauNombre =$nouveau;
$fp = fopen($fichier,"r");
// Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+");
// Ouverture du fichier temporaire
while (!feof($fp)) {
// Parcours du fichier
$ligne = fgets($fp,4000);
// On récupère le nombre de la ligne
if ($ligne!=$ancienNombre){
// Condition de placement
fwrite($fp_temp,$ligne);
} else {
fwrite($fp_temp,$nouveauNombre."\n");
}
}
fclose($fp);
// Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier);
// On recopie le fichier temporaire obtenu
unlink("temp.txt");
// On l'efface
}

$tab =file("fichier.txt");
for($i=0;$i<count($tab);$i++){
echo "$tab[$i]";
}
?>

Voila, si tu as d'autres questions. n'hésites pas.

Florian