Supprimer du texte dans un fichier en php
Résolu/Fermé
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
-
20 juil. 2009 à 20:13
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 - 22 juil. 2009 à 18:31
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 - 22 juil. 2009 à 18:31
A voir également:
- Supprimer du texte dans un fichier en php
- Impossible de supprimer un fichier - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
16 réponses
Bonjour
Pour couper la fin d'un fichier, il y a la fonction ftruncate
https://www.php.net/manual/fr/function.ftruncate.php
Si ce n'est pas seulement la fin que tu veux couper, mais une partie intermédiaire, il faut lire le début du fichier en le recopiant dans un fichier intermédiaire, lire la partie que tu ne veux pas sans la recopier, et enfin lire la fin en la recopiant. Tu ne peux pas directement retirer un morceau du milieu d'un fichier.
Pour couper la fin d'un fichier, il y a la fonction ftruncate
https://www.php.net/manual/fr/function.ftruncate.php
Si ce n'est pas seulement la fin que tu veux couper, mais une partie intermédiaire, il faut lire le début du fichier en le recopiant dans un fichier intermédiaire, lire la partie que tu ne veux pas sans la recopier, et enfin lire la fin en la recopiant. Tu ne peux pas directement retirer un morceau du milieu d'un fichier.
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
20 juil. 2009 à 22:10
20 juil. 2009 à 22:10
bah enfaite mon script ajoute
en modifiant '.$_POST['module'].' et '.$_POST['nom'].' en fonction de ce que l'utilisateur a écris mais après j'ai fait le même script mais qui la supprime ce que l'on à créer dans la fonction ajout donc ce lien ce peut ce retrouver aussi bien au début que a la fin ou au milieu
merci quand meme
<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'</a></li>
en modifiant '.$_POST['module'].' et '.$_POST['nom'].' en fonction de ce que l'utilisateur a écris mais après j'ai fait le même script mais qui la supprime ce que l'on à créer dans la fonction ajout donc ce lien ce peut ce retrouver aussi bien au début que a la fin ou au milieu
merci quand meme
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 juil. 2009 à 22:42
20 juil. 2009 à 22:42
ce que tu peux faire:
par la fonction file() tu lis le fichier
par la fonction file() tu lis le fichier
$array_fichier=fiche('ton_fichier.txt'); $recherche='<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'</a></li>'; //ensuite tu parcours cet array //on va tester la partie recher et la remplacer par "" (vide) et réecrire la ligne dans le fichier $fp = fopen ('ton_fichier.txt', "r+"); //ouverture fichier fseek ($fp, 0); //remise a zero pointeur foreach($array_fichier as $cle=>$value){ $array_fichier[$cle]=preg_replace($recherche,"",$value); //modif eventuelle si chaine trouvée //on reecrit fputs ($fp, $array_fichier[$cle]); } fclose ($fp);
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
21 juil. 2009 à 04:53
21 juil. 2009 à 04:53
sa ne marche sa me dit que la fonction fiche est inconnue
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juil. 2009 à 11:10
21 juil. 2009 à 11:10
oups ! erreur de frappe c'est file
si ça ne fait pas les retours à la ligne dans le fichier après recriture remplaces:
fputs ($fp, $array_fichier[$cle]);
par
$array_fichier=file('ton_fichier.txt'); //attention il faut mettre le chemin relatif de ton fichier par rappport a ce script $recherche='<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'</a></li>'; //ensuite tu parcours cet array //on va tester la partie recher et la remplacer par "" (vide) et réecrire la ligne dans le fichier $fp = fopen ('ton_fichier.txt', "r+"); //ouverture fichier fseek ($fp, 0); //remise a zero pointeur foreach($array_fichier as $cle=>$value){ $array_fichier[$cle]=preg_replace($recherche,"",$value); //modif eventuelle si chaine trouvée //on reecrit fputs ($fp, $array_fichier[$cle]); } fclose ($fp);
si ça ne fait pas les retours à la ligne dans le fichier après recriture remplaces:
fputs ($fp, $array_fichier[$cle]);
par
fputs ($fp, $array_fichier[$cle]."\n");
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
21 juil. 2009 à 13:22
21 juil. 2009 à 13:22
maintenant j'ai cette erreur
Warning: preg_replace() [function.preg-replace]: Unknown modifier '<' in D:\xampp\htdocs\stylemario\paneladmin\admin\test2.php on line 50
Warning: preg_replace() [function.preg-replace]: Unknown modifier '<' in D:\xampp\htdocs\stylemario\paneladmin\admin\test2.php on line 50
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juil. 2009 à 17:05
21 juil. 2009 à 17:05
mets:
$recherche='/<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'</a></li>/i';
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
21 juil. 2009 à 23:38
21 juil. 2009 à 23:38
sa me donne maintenant
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in D:\xampp\htdocs\stylemario\paneladmin\admin\test2.php on line 50
j'arrive pas à trouver l'erreur
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in D:\xampp\htdocs\stylemario\paneladmin\admin\test2.php on line 50
j'arrive pas à trouver l'erreur
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juil. 2009 à 11:56
22 juil. 2009 à 11:56
j'avais pas fais attention il faut éechapper "les / par \
$recherche='/<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'<\/a><\/li>/i';
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
22 juil. 2009 à 12:43
22 juil. 2009 à 12:43
quand il n'y a que un seul lien
sa ne le supprime
mon programme détecte une modification mais le lien reste toujours la
et quand il y en a plusieurs et que je supprime le premier sa reécri ceux qui sont âpres donc les lien sont en double
sa ne le supprime
mon programme détecte une modification mais le lien reste toujours la
et quand il y en a plusieurs et que je supprime le premier sa reécri ceux qui sont âpres donc les lien sont en double
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juil. 2009 à 13:24
22 juil. 2009 à 13:24
sa ne le supprime
mon programme détecte une modification mais le lien reste toujours la
je ne comprend pas ça le supprime ou pas ?
chez moi j'ai fait un test avec un petit bout de fichier et un seul lien ça le supprime bien
comment peux tu avoir deux leins identiques dans le même fichier ?
mon programme détecte une modification mais le lien reste toujours la
je ne comprend pas ça le supprime ou pas ?
chez moi j'ai fait un test avec un petit bout de fichier et un seul lien ça le supprime bien
comment peux tu avoir deux leins identiques dans le même fichier ?
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
22 juil. 2009 à 13:40
22 juil. 2009 à 13:40
j'ai refait le lien avec 2 lien
au début mon fichier était comme sa
et après avoir essayer de supprimer le premier lien sa me donne
si sa peut aider voici le code de ma page
cette page est inclu dans un autre qui inclu le header et le footer
au début mon fichier était comme sa
<li><a href="aaa.php">le test</a></li> <li><a href="aaaa.php">les test</a></li>
et après avoir essayer de supprimer le premier lien sa me donne
<li><a href="aaaa.php">les test</a></li>i><a href="aaaa.php">les test</a></li>
si sa peut aider voici le code de ma page
switch ($_GET['etape']) { case "v": unlink(''.$_POST['module'].'.php');//on suprimme le module //suppression du lien du menu $array_fichier=file('lmenu.php'); //attention il faut mettre le chemin relatif de ton fichier par rappport a ce script $recherche='/<li><a href="'.$_POST['module'].'.php">'.$_POST['nom'].'<\/a><\/li>/i'; //ensuite tu parcours cet array //on va tester la partie recher et la remplacer par "" (vide) et réecrire la ligne dans le fichier $fp = fopen ('lmenu.php', "r+"); //ouverture fichier fseek ($fp, 0); //remise a zero pointeur foreach($array_fichier as $cle=>$value){ $array_fichier[$cle]=preg_replace($recherche,"",$value); //modif eventuelle si chaine trouvée //on reecrit fputs ($fp, $array_fichier[$cle]); } fclose ($fp); mysql_query('DROP TABLE `'.$_POST['module'].'`');//on supprime la table echo " <h1>Module supprimer</h1> <p>votre module est supprimer</p> <a href=\"./\""; break; default: echo " <h1>Ajout de module</h1> <br /> <form action=\"?module=supprpages&etape=v\" method=\"post\"> <table> <tr> <td>Nom du module :</td> <td><input class=\"champ\" type=\"text\" name=\"module\" value=\"\"></td> </tr> <tr> <td>Titre dans le menu :</td> <td><input class=\"champ\" type=\"text\" name=\"nom\" value=\"\"></td> </tr> </table> <br /> <center><input type=\"submit\" name=\"etape_1\" value=\"Suivant\"></center> </form></p>"; break; }
cette page est inclu dans un autre qui inclu le header et le footer
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juil. 2009 à 14:00
22 juil. 2009 à 14:00
Pourtant chez moi ça marchait
essayes avec
essayes avec
$fp = fopen ('lmenu.php', "w+");
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
22 juil. 2009 à 14:13
22 juil. 2009 à 14:13
Merci sa marche nickel.
Merci de m'avoir aidé a complété la pièce manquante de mon script.
Si tu veut le tester dit le moi je te le ferai tester avec plaisir.
Merci encore d'avoir pris le temps de m'aider
Merci de m'avoir aidé a complété la pièce manquante de mon script.
Si tu veut le tester dit le moi je te le ferai tester avec plaisir.
Merci encore d'avoir pris le temps de m'aider
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juil. 2009 à 15:35
22 juil. 2009 à 15:35
Ok, merci, mais pour le moment je n'en ai pas l'utilité.
Bon courage
Bon courage
sob_12
Messages postés
306
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
7 février 2012
15
22 juil. 2009 à 18:31
22 juil. 2009 à 18:31
merci ;)