Accueil > Forum > > > > supprimer ligne fichier texte
supprimer ligne fichier texte
mardi 12 octobre 2010 à 13:33:32 |
supprimer ligne fichier texte

sly784965
|
Bonjour,
j'ai le code suivant qui me permet d'afficher le contenu du fichier "affichage.php" via une boucle while :
Code PHP : <?php
//Lecture séquentielle du fichier et affichage, ligne par ligne du contenu du fichier "affichage.txt":
$fic = fopen ("affichage.txt" , "r");
$tab_ligne = file('affichage.txt'); // place le fichier dans un tableau
$nb = count($tab_ligne);
$i=0;
while ($i<$nb)
{
?>
<tr><td><?php echo $tab_ligne[$i]; ?> </td>
<td><input type="button" name="supprimer" value="supprimer" ></td>
</tr>
<?php $i++;
}
fclose ($fic);
?>
Le problème est que je ne sais pas comment faire pour que lorsque je clique sur le bouton supprimer correspondant a un enregistrement, cet enregistrement soit supprimer de mon fichier texte !!
Merci de m'aider
sly
|
|
mercredi 13 octobre 2010 à 00:38:59 |
Re : supprimer ligne fichier texte

007Julien
|
Il s'agit sans doute d'un extrait de la pageaffichage.php destiné à traiter le fichier affichage.txt ? Les fopen et fclose (et la variable $fic) sont inutiles, le file est suffisant pour lire un fichier texte disponible sur le serveur. Ne serait-il pas plus utile de rassembler le tout, plutôt que dans un tableau, dans un formulaire à construire progressivement (et à éditer en une seule fois) pour le soumettre (avec méthode et action) ? Alors des cases à cocher repérées par des noms indicés permettraient de distinguer les lignes à supprimer en cliquant sur un unique bouton submit.
|
|
mercredi 13 octobre 2010 à 09:20:43 |
Re : supprimer ligne fichier texte

sly784965
|
Oui il s'agit bien de la page visant à traiter le fichier affichage.txt. Dans mon cas le formulaire n'a aucune utilité.
A chaque affichage d'une ligne de mon fichier txt, un bouton supprimer apparait pour chaque ligne et j'aimerais qu'en cliquant dessus il supprimer la ligne désirée.
J'ai trouvé cela mais il ne fonctionne pas comme je le voudrais :
Code PHP : <?php
function afficher($fichier, $separateur)
{
$tab = file($fichier);
print "<TABLE BORDER=\"1\">";
for($i=0;$i<count($tab);$i++)
{
print "<TR>";
$sstab = explode($separateur, $tab[$i]);
foreach ($sstab as $ssval)
print "<TD>$ssval</TD>";
print "<TD><A href=\"".$_SERVER['PHP_SELF']."?suppr=".$i."\">Supprimer</A><TD>";
print "</TR>";
}
print "</TABLE>";
}
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);
}
?>
Et dans le corps de ma page :
Code PHP : <? 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.
Merci d'avance.
sly
|
|
mercredi 13 octobre 2010 à 11:03:13 |
Re : supprimer ligne fichier texte

007Julien
|
Effectivement avec une méthode GET, le formulaire est inutile. Les fopen et fclose du pFic sont tout aussi inutiles pour lire le fichier (d'ailleurs l'affichage se fait sans), ils ne servent qu'à le reconstituer en fin d'opération (avec la méthode (w) comme write).
La fermeture la case du tableau après le supprimer (</td> et non <td>) éviterait des cases inutiles, mais la question essentielle est quel est le but de l'opération supprimer des lignes entières ou seulement des portions distinguées par des séparateurs ?
Bonne continuation
|
|
mercredi 13 octobre 2010 à 11:07:59 |
Re : supprimer ligne fichier texte

007Julien
|
Attention aussi aux rechargements de page (et à l'affichage préalable aux modifications) qui, en supprimant la ligne n peuvent progressivement supprimer toutes lignes suivantes...
|
|
mercredi 13 octobre 2010 à 13:18:01 |
Re : supprimer ligne fichier texte

sly784965
|
C'est justement mon problème, les lignes suivantes par rapport à celles que j'ai supprimé se supprime lors du rechargement de la page. Le but est de supprimer une ligne entiere en cliquant sur le bouton supprimer lui correspondant dans le tableau.
sly
|
|
mercredi 13 octobre 2010 à 14:42:30 |
Re : supprimer ligne fichier texte

007Julien
|
La meilleure solution semble alors un POST et un rechargement de page pour éviter les doubles enregistrements. Mais attention aux interventions croisées ! C'est un peu du bricolage pour travaux à domicile...
Si tel est le cas, j'aurais procédé comme suit :
Code PHP : if (!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.='<input type="checkbox" name="suppr'.$i.'">';
$sstab=explode(" : ", trim($tab[$i]));
foreach ($sstab as $ssval) $chn.= '<span style="border:1px solid gray">'.$ssval.'</span>';
$chn.='<br>'.$lgn;
}
$chn.='<input type="submit" name="bouton" value="Enregistrer"</form>';Avec une fonction ou un simple Code PHP : dans le corps du programme.
|
|
mercredi 13 octobre 2010 à 19:44:18 |
Re : supprimer ligne fichier texte

kohntark
|
Salut,
La meilleure solution semble alors un POST[...]
Je dirai qu'il y a sans doute plusieurs meilleures solutions
L'utilisation des XMLHTTPRequest étant certainement en haut de tableau.
Cordialement,
Kohntark -
|
|
Cette discussion est classée dans : fichier, ligne, code, texte, supprimer
Répondre à ce message
Sujets en rapport avec ce message
supprimer une ligne dans un ficheir texte !!!! [ par funghi ]
salut à tous !!Pour alimenter un panier, php recupere les données (séparées par des tabultaions) dans un fichier texte .Jusque la tout va bien !mainte
Saut de ligne ou préciser une ligne dans un fichier texte, [ par milkyoue ]
Bonjour, Je voudrais savoir comment inscrire une ligne de caratère dans un fichier *.txt par exemple à la neuvième lignes, car il m'inscrit tout sur
Un fichier texte pour plusieurs compteurs [ par bluejim ]
blue_jim Ma question est la suivante :Est-il possible en Php de lire une ligne prédéfinie d'un fichier texte.J'explique :En partant du fait que la val
fichier ??? [ par rich25200 ]
Bonjour !!!j'ai un fichier....J'arrive a le lire mais je veux que lorsque dans mon fichier texte il y a un saut de ligne il me l'affiche dan un tablea
Saut à la ligne et espacement [ par redpooka ]
Voici mon code:texte Et je trouve qu'il y a trop d'espace entre le saut de ligne et le texte, comment faire pour mettre plus
modifier une ligne dans un fichier texte S.O.S [ par MeTh ]
Bonjour,j'ai besoin de modifier une ligne dans un fichier texte plus précisément .htx format spécifique pour un programme qui est en fait une page .ht
Question de neebies!!!!!!! [ par defkrie ]
Bonjour,jai une variable $chars qui contient le mot "aze" et un fichier texte "charts.txt". Dans ce fichier texte, à chaque ligne jai un mot du meme n
passage à la ligne [ par cas ]
Je possède un formulaire, dans lequel j'ai plusieurs champs texte "textearea". Quand j'appuie sur valider, je renseigne un fichier texte avec le conte
extraire une ligne d'un fichier texte [ par matthieugregoire ]
Bonjour à tous!!Je suis tout à fait novice dans l'usage de php et c'est pourquoi j'ai besoin que l'on me donne un petit coup de pouce. Je vous expose
help > fichier texte : Aïe! [ par paprikarmasutra ]
Salut,Voilà j'essaye de faire une petite tribune simple sans base MySQL, juste en mettant un fichier texte à jour en permanence. Le code fonctionne co
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|