Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2007, 11h44   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
Par défaut Recherche dans un fichier .txt et remplacer

Voici j'ai un fichier .txt avec tout plein d'information qu'il ne faut pas modifier

donc voici je demande dans un formulaire le mot que l'utilisateur par quoi il veut le modifier!

mais le probleme la ligne a remplacer s'écrit comme ça :
MapId = MotAModifier

le mot a modifier peut se retrouver autre part.
mais l'utilisateur peut modifier exclusivement que celui qui est précédé de "MapId ="

j'ai rien trouver concernant se sujet
a part la fonction str_replace mais faut savoir qu'elle mot il faut modifier et il remplace toute les occurrences (a comparé de cela moi c'est une seul occurrence)

Merci d'avance
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h27   #2
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
J'ai rien compris...
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h30   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
j'ai un fichier .Txt
forme :

Citation:
je raconte ma life avec plein de life etc....

identifiant = life
le but est de rechercher dans le fichier le mot life mais uniquement celui précédé de "identifiant = " pour le modifié et mettre la réponse du formulaire a la place

plus compréhensible??
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h40   #4
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
oui, merci

as-tu essayé de lire lettre par lettre ton fichier :
- tu fais un $fichier=fopen('truc.txt');
apres tu lis lettre par lettre $fichier
tu test la lettre et si elle correspond a la chaine que tu veux trouver, tu regarde si la lettre qui suit correspond aussi et ainsi de suite.

Ainsi, lorsque toute ta chaine est trouvée, tu sais que tu es a la bonne occurrence.

Est-ce clair ce que j'ai dis ou pas?
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h42   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
ouai ça peut etre une idée mais apres pour le remplacement j'ai trouvé que str_replace..... et ce dernier remplace toute les occurence du mot....
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h44   #6
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
je ne connais pas cette fonction mais tu ne peux pas faire une condition pour l'executer?
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h48   #7
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
en faite d'apres ce que j'ai lu la fonction remplace l'occurence a partir d'ou le curseur se trouve
donc en faite le probleme ça serai pour évité qu'il aille trop loin ^^

mais sinon je connais pas trop la fonction !
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 13h50   #8
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
je te conseil d'aller voir ce site,
http://uk2.php.net/manual/fr/function.str-replace.php
il y a l'explication de ta fonction ainsi que d'autres qui te conviendraient peut etre mieux pour ce que tu veux faire
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 15h17   #9
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
j'y suis deja allez dessu mais rien de trouvé qui est bien concluant !!!!
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 16h01   #10
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Il te faut utiliser une assertion arrière positive.

Code :
1
2
3
4
5
$chaine = 'je raconte ma life avec plein de life etc....
 
identifiant = life';
 
echo preg_replace('#(?<=identifiant = )life#', 'vie', $chaine);
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h57   #11
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
Je ne savais pas qu'il était possible de faire ça de cette maniere Xunil.
Merci
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 11h39   #12
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
voici mon code (qui marche pas bien sur ^^ )

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 define('INI_FILE', 'client.ini');
 
 $ini = parse_ini_file(INI_FILE);
$contenu=stripslashes(nl2br(htmlentities($_POST['map'])));
$map=isset($ini['mapId']) ? trim($ini['mapId']) : '';
 
$ouvre=fopen("client.ini","r");  // ouverture du fichier
while (!feof ($ouvre))          // tant que pas en fin de fichier
	{
 
$lecture = fgets($ouvre, 4096); // stockage dans $lecture
 
// modification des données
preg_replace('#(?<=mapId = )'.$map.'#', $contenu , $ouvre);
 
 
 
	}
fclose($ouvre);		// fermeture
 
$ouvre=fopen("client.ini","w+");
fwrite($ouvre,$lecture);
fclose($ouvre);
 
 
?>
je dois récupérer l'identifiant dans un point .ini
apres je dois ouvrire se fichier pour remplacer l'identifiant

je suis obliger de garder la mise en page de ce document donc je peux pas utiliser parse_ini_file pour la modification car se dernier garde pas la mise en page !!!

merci de m'aider
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 09h10   #13
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
donc pour utiliser la fonction qu'on m'a proposé : la démarche a suivre serais de parcourir tout le fichier .txt de mettre le contenu dans une variable.
ensuite il faut mettre la commande : preg_replace('#(?<=identifiant = )life#', 'vie', $chaine);

puis réécrire le fichier !!

ai je la bonne méthode???
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h28.


 
 
 
 
Partenaires

Hébergement Web