|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
Bonjour tout le monde,
Je viens vous demander un petit coup de main sur une expression reguliere qui sera pour vous très simple mais moi j'ai beau essayer d'y arriver c'est pas mon truc! Je dois parser un fichier html pour y rechercher la chaine de caractere %s et la remplacer par autre chose. Dans mon exemple ca sera ce brave TOTO. Ce code m'est utile afin d'y appliquer par la suite un vprintf. Enfin bref pour celà j'ai écris ceci : Code :
$squelette = ereg_replace("%[^s]","TOTO",$squelette); Citation:
Citation:
Mais ca fonctionne quand même pour mes %s. merci de voter aide |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Étudiant Inscription : février 2004 Messages : 2 168 ![]() |
Et pourquoi pas faire
Code :
$squellette = str_replace("%s", "TOTO", $squelette); |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
dans ce cas précis, tu peux utiliser la fonction printf() ou sprintf()
exemple : Code :
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
+1, utilise la fonction sprintf() qui est prévue pour cela. Au passage, concernant les regex, je te recommande d'éviter la norme POSIX au profit des PCRE : http://g-rossolini.developpez.com/tu...ns-regulieres/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
Merci de vos réponses.
Non je ne peux pas utiliser sprintf tout simplement car mon code à 2 fonctions: il affiche une vue schematique coté admin ET une vue réelle coté visiteur. Pour celà je dois utiliser la fonction vsprintf. Pour la petite histoire je fais un portail/salle d'arcade pour phpbb. Donc dans un premier temps je parses des modeles de structures en HTML où %s symbolise l'emplacement d'un bloc que je remplace par l'identifiant du bloc réel affiché. Ensuite en fonction de l'endroit où je me trouve soit il affiche le bloc, soit sa déscription. coté admin ca ressemble à ca : ![]() et coté visiteur ca donne ca : http://www.yep-yop.com/gf_arcade/arcade.php Le code qui me permet de faire ca c'est ca: Code :
http://www.yep-yop.com/gf_arcade/arc...quelette_4.tpl qui me crée un fichier tpl dynamique et http://www.yep-yop.com/gf_arcade/arc...he/blocs_4.txt qui m'affiche la liste des blocs à charger. Voilà j'espere avoir été assez complet/concis dans mon explication afin que vous voyez ce que j'ai fais et pourquoi je l'ai fais. |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Étudiant Inscription : février 2004 Messages : 2 168 ![]() |
Dans ton pemier message tu dis vouloir remplacer %s par TOTO, or ton regexp dit "remplacer %X avec X différent de s", c'est pas pas logique
Et puis le str_replace() n'est pas utile? |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
je suis en train de reprendre ce code que j'ai fais il y a un moment et je me rend compte que je vous ai dis une grosses connerie. Excusez moi
Effectivement je veux pouvoir AVANT de parser les %s virer tous les sigles % afin que la fonction printf ne les parses pas! si on prend un exemple tout bete : Code :
<table><tr><td width="20%">%s</td></table> |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
ca va te remplacer tout les %s par TOTO dans ta chaine $chaine.
Si ce n'est pas exactement cela que tu veux faire, donne nous un exemple de ce que tu veux faire.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
je veux remplacer tous les caracteres % par autre chose SAUF les %s
Ca pourrait donner ca : width="20%" => width="20TOTO" width=20% => width=20TOTO blablabla %s => blablabla %s %%s => TOTO%s |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
Code :
preg_replace("#%([^s])#","#$1", $chaine); tu y étais presque sauf qu'il fallait récupérer ce [^s] dans $1 et le remettre Voila !!
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
nickel Merci Mr Maxoo
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com