begin process at 2012 05 31 13:36:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

question sur un preg_replace


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

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'


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 : 0,437 sec (4)

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