begin process at 2012 05 30 20:21:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

modifier chaine fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

modifier chaine fichier texte

mercredi 3 novembre 2010 à 14:08:06 | modifier chaine fichier texte

sly456328971

Bonjour,

je cherche à remplacer une chaine dans une fichier texte sans succes :

Code PHP :
if (isset($_GET['ajout'])) // Si on demande de supprimer une ligne
			{
				$tab = file("affichage.txt");
				$num_ligne =1;
				for ($i = 0; $i<count($tab);$i++)
				{
					$position=explode('|',$tab[$num_ligne-1]);
					$position[2]='faux';
					$num_ligne++;					
				}	
				header('Location: index.php'); // on recharge cette page pour la réactualiser		
			}


Merci de m'aider
mercredi 3 novembre 2010 à 14:32:59 | Re : modifier chaine fichier texte

cod57

salut

Code PHP :
<?php

$a_virer="ma ligne à enlever";

$fichier="affichage.txt"; // tu adaptes

//ouverture en lecture et modification 
$text=fopen($fichier,'r') or die("Fichier manquant"); 
$contenu=file_get_contents($fichier); 
$contenuMod=str_replace($a_virer,'',$contenu); 
fclose($text); 

//ouverture en écriture 
$text2=fopen($fichier,'w+') or die("Fichier manquant"); 
fwrite($text2,$contenuMod); 
fclose($text2); 

?> 



mercredi 3 novembre 2010 à 14:39:32 | Re : modifier chaine fichier texte

sly456328971

Salut cod57 et merci !!

Mon probleme est que mon fichier texte contient :

Truc1|Machin1|faux
Truc2|Machin2|faux
Truc3|Machin3|vrai

J'aimerais ne pas modifier ni supprimer la ligne entiere mais uniquement modifier le troisieme parametre !!
mercredi 3 novembre 2010 à 14:46:15 | Re : modifier chaine fichier texte

cod57

C'est pas plus compliqué dans

$a_virer = "Truc1|Machin1|faux";
$new = "Truc1|Machin1|juste";

// tu comprendras

$contenuMod=str_replace($a_virer,'',$contenu);

devient

($a_virer, $new, $contenu)

si tu as beaucoup de lignes écrit une fonction avec un while ...
mercredi 3 novembre 2010 à 14:56:13 | Re : modifier chaine fichier texte

sly456328971

Mon souci est que je ne peut pas écrire
Code PHP :
$a_virer = "Truc1|Machin1|faux";
car je ne connai pas le contenu du fichier celui ci étant alimenté dynamiquement.

Je ne sais pas si tu as fais attention à ma premiere fonction mais c'est lorsqu'un utilisateur clique sur un lien correspondant à une ligne dont je récupére l'id, je modifie cette ligne. Je ne connais donc pas à l'instant t le contenu de la ligne qui devra etre modifié.

Ce n'est pas possible de remplacer le deuxieme parametre avec un explode ?

Merci encore !!
mercredi 3 novembre 2010 à 15:11:42 | Re : modifier chaine fichier texte

cod57

$_GET['ajout'] c'est la ligne ? une condition ...

$_GET['ajout'] c'est ce que moi j'appelle $a_virer ?
mercredi 3 novembre 2010 à 15:17:28 | Re : modifier chaine fichier texte

cod57

http://bytes.com/topic/php/answers/1864-replace-string-file

http://www.webdeveloper.com/forum/archive/index.php/t-46601.html

deux discussions qui peuvent peu être d'aider
mercredi 3 novembre 2010 à 15:32:18 | Re : modifier chaine fichier texte

sly456328971

Non, $_GET['ajout'] fait référence à cela dans ma page php :

Code PHP :
print "<td><a href=\"".$_SERVER['PHP_SELF']."?ajout=".$j."\"><img src='/essai/images/rouge.jpg' width=30 height=30 border='no'></a></td>";


S'il clique sur l'image on récupére l'id et je veux aller modifier le troisieme parametre du fichier de la ligne correspondante à l'id.
mercredi 3 novembre 2010 à 15:52:41 | Re : modifier chaine fichier texte

cod57

oui

if(isset($_GET['ajout']) && !empty($_GET['ajout')){

$id=$_GET['ajout']);

// $rows ligne de la table ou il y a le $id
// la tu recupéres la ligne à partir de $id
// select * from table where id=$id ... mysqle_query() ... tati tata
// tu construis ta ligne

$a_virer = $rows['truc'].'|'.$rows['truc'].'|faux';

$new = $rows['truc'].'|'.$rows['truc'].'|vrai';

$text=fopen($fichier,'r') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
$contenuMod=str_replace($a_virer,'',$contenu);
fclose($text);

//ouverture en écriture
$text2=fopen($fichier,'w+') or die("Fichier manquant");
fwrite($text2,$contenuMod);
fclose($text2);


}


mercredi 3 novembre 2010 à 16:05:56 | Re : modifier chaine fichier texte

sly456328971

J'ai réussi a faire une partie de ce que je voulais avec ceci :

Code PHP :
if (isset($_GET['ajout'])) // Si on demande de supprimer une ligne
			{	
				$content = file('affichage.txt');
				$num = 0;
				$data = explode('|',$content[$num]);
				$data[2] = "vrai\r\n";
				$content[$num] = implode('|', $data);

				file_put_contents('affichage.txt', $content);

			}


Cela ne marche que lorsque le num de la ligne est à 0. J'aimerais l'adapter avec ton exemple précédent pour qu'il exécute ceci pour la ligne X correspondant à l'id récupéré dans l'url.

1 2

Cette discussion est classée dans : fichier, ligne, texte, chaine, tab


Répondre à ce message

Sujets en rapport avec ce message

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 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 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 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 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 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 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 remplacer une chaine de caractère dans un fichier [ par Capitaine Iron ] j'ai un fichier texte qui est structuré de la facon suivante :le messageplein de commmentaires ici.....le messageplein de commmentaires ici.....le mes 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 Modifier un fichier toute les 24 heures [ par KiWin ] Bonjour,J'aimerais savoir quel code utiliser pour modifier un fichier toutes les 24 heures. Ce fichier doit être modifié de sorte à ajouter à la lign


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,215 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales