<?php function afficher($fichier, $separateur) { $tab = file($fichier); print "\"; for($i=0;$i<count($tab);$i++) { print \"---- \"; $sstab = explode($separateur, $tab[$i]); foreach ($sstab as $ssval) print \"$ssval, \"; print \"Supprimer, \"; print \"\"; } print " "; } if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("affichage.txt", 'r'); $tab = file("affichage.txt"); $chaine =""; for ($i = 0; $i<count($tab);$i++) $chaine .= ($i!=$_GET['suppr']) ? $tab[$i] : ""; //C'est ici qu'on supprime la ligne sélectionnée fclose ($pFic); } $pFic = fopen ("affichage.txt", 'w'); fputs ($pFic, $chaine); fclose ($pFic); } ?>
<? afficher("affichage.txt", " : ") ?>Mon fichier texte comprenant plusieurs données par ligne séparé par ":". Le soucis est lorsque j'ai par exemple 10 lignes et que je supprime la ligne 8, il me supprime la ligne 9 et 10 aussi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionif (!empty($_POST) && $_POST["bouton"]=="Enregistrer"){ // Enregistrer les suppressions de lignes //Lire le fichier texte $tab=file("affichage.txt"); // Enregistrer une sauvegarde datée $tdy=date("ymd_His"); $fis=fopen("affichage$tdy.txt","w"); $fic=fopen("affichage.txt","w"); for($i=0;$i<count($tab);$i++){ fwrite($fis,$tab[$i]); if (empty($_POST["suppr".$i])) fwrite($fic,$tab[$i]); } fclose($fis);fclose($fic); // Rechargement de la page header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); exit; } // Afficher $lgn=chr(10).chr(13); // Pour un source plus lisible $chn='<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'.$lgn; $tab=file("affichage.txt"); for($i=0;$i<count($tab);$i++){ $chn.=''; $sstab=explode(" : ", trim($tab[$i])); foreach ($sstab as $ssval) $chn.= ''.$ssval.''; $chn.=' '.$lgn; } $chn.='';Avec une fonction ou un simple
<?php echo $chn ?>dans le corps du programme.
La meilleure solution semble alors un POST[...]