Accueil > Forum > > > > question sur un preg_replace
question sur un preg_replace
lundi 21 septembre 2009 à 11:18:43 |
question sur un preg_replace

kalvinbob
|
Bonjour,
J'ai un petit problème de compréhension sur une expression utilisée dans phpbb3.
Voici l'expression:
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$trad['\\1'])) ? \$trad['\\1'] : '\\1'", $error);
Elle remplace dans le tableau $error une valeur par son homologue dans le tableau $trad. Elle fonctionne parfaitement mais j'aimerais la comprendre un peu mieux. Trois points me chiffonnes:
- A quoi sert le 'e' a la fin de l'expression régulière.
- Comment cette expression peu boucler pour traiter chaque valeur du tableau séparément.
- Pourquoi le \1 est interprété comme la valeur traitée par l'expression régulière.
Quelqu'un peut il éclairer ma lanterne dans la nuit de ce code?
|
|
lundi 21 septembre 2009 à 11:37:47 |
Re : question sur un preg_replace

Tonio_35
|
Réponse acceptée !
Hello,
- A quoi sert le 'e' a la fin de l'expression régulière.
Pattern Modifiers
* i - Case Insensitive
* m - Multiline mode - ^ and $ match start and end of lines
* s - Dotall - . class includes newline
* x - Extended– comments and whitespace
* e - preg_replace only – enables evaluation of replacement as PHP code
* S - Extra analysis of pattern
* U - Pattern is ungreedy
* u - Pattern is treated as UTF-8
Source 1
e force preg_replace() à traiter replacement comme du code PHP une fois que les substitutions adéquates ont été faites. Conseil : assurez-vous que replacement est un code PHP valide, car sinon, PHP trouvera une erreur d'analyse dans la ligne contenant la fonction preg_replace().
Cf source Exemple #4
Source 2
- Comment cette expression peu boucler pour traiter chaque valeur du tableau séparément.
Cf source 2 Exemple #4
- Pourquoi le \1 est interprété comme la valeur traitée par l'expression régulière.
Cf source 2 paragraphe replacement
Quelqu'un peut il éclairer ma lanterne dans la nuit de ce code?
Souvent, on l'oublie mais la doc php est pas mal faite... Il faut trouver la bonne...
Bon courage pour la suite,
_________________________________
Min iPomme
|
|
lundi 21 septembre 2009 à 11:58:41 |
Re : question sur un preg_replace

kalvinbob
|
Rhoooo,
J'ai un peu honte, je croyais connaitre preg_replace et du coup je n'ai pas été voir la doc pour cette fonction (lorsque je code, j'ai toujours une fenêtre du manuel php ouverte...) pensant que la feinte venais des ".
En tout cas grand merci pour cette tape derrière la tête.
|
|
lundi 21 septembre 2009 à 12:01:37 |
Re : question sur un preg_replace

Tonio_35
|
Y a pas de mal ! Moi j'utilise même un widgets de la doc php...
Bonne continuation !
_________________________________
Min iPomme
|
|
Cette discussion est classée dans : replace, expression, error, preg, trad
Répondre à ce message
Sujets en rapport avec ce message
preg_replace [ par Tomcube ]
Est-ce que quelqu'un pourrait me modifier cette ligne pour la faire accepter les retours à la ligne (\n), j'ai trop de mal avec les masques ! $text =
preg_replace [ par tungsten180 ]
Salut,je débute en PHP et j'ai besoin d'utiliser la fonction preg_replace, mais je n'ai pas compris son fonctionnement.Voilà ce que je voudrais faire
utiliser une fonction dans preg_replace() [ par Rabba ]
Hello! J'aimerais utiliser une fonction dans preg_replace comme suit: preg_replace('/\[html\](.*)\[\/html\]/Us',strtoupper('$1'),$Data); le pro
preg_replace recursif !! [ par massiliaman ]
Salut je voudrais inserer un espace entre groupe de lettre et groupe de chiffre avec preg_replace mais cela de facon recurssive. Je m'explique j'ai en
expression toute bete avec des ' et des ", qui resiste... [ par sbastian ]
bonjour! j'ai ce bout de code (remplacement de l'expression "d' " par "espace") qui me resiste... $ligne=str_replace("d'"," ",$ligne); = marche pas,
temp d'execution et preg_replace_callback [ par MisterV ]
Je m'excuse de poster ce message, mais ayant fait une erreur alors que je postais mon message, il est arrivé dans la rubrique hebergeurs.Il me semble
preg_replace pour chaine de code php [ par JoJo738 ]
exp reg [ par coucou747 ]
Salut je fais un forum OO en php4 et j'ai besoin d'un peu d'aide pour la fonction qui transforme une variable avant de l'enregistrer : celle qui gère
extraction de liens externes [ par tony4758 ]
Bonjour, je souhaite créer un script permettant d'extraire tous les liens d'un site, et d'inscrire l'adresse du lien et la description du lien (ce qu'
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
|