Bête expression régulière... suis fatigué je cale! :'(

Eléphant du PHP | 53 Messages

26 nov. 2007, 15:16

Salut à tous!

Voilà je cherche depuis 20min pourquoi ma petit expression régulière de rien du tout ne fonctionne pas..

En fait elle fonctionne sous RegEx Coach mais pas quand je fais mon preg_replace!

expression :

Code : Tout sélectionner

$ exp = "`<head>(.*)</head>(.*)<body>(.*)</body>`si";
En gros je veux ajouter des bouts de code dans le header et body suivant le cas.

en remplacement j'aurais donc

Code : Tout sélectionner

$replacement = "<head>$1 blablabla</head><body>bliblibli $2</body>";
Mais il ne me trouve pas mon expression j'ai essayé avec preg_match , or avec RegEx coach ça marche....

HELP ! (je suis fatigué je l'avoue) :?

Merci!

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

26 nov. 2007, 15:19

Tu utilises des doubles " dans ton $remplacement. Remplace-les par de simples '

Mon conseil : lorsque tu cales, fait un var_dump() de chaque variable présente dans le contexte.

Mammouth du PHP | 505 Messages

26 nov. 2007, 16:00

Pourquoi $1 et $2 en remplacement, en regex, les patterns qui ont été capturés sont nommés \1 \2 etc...
NB: tu captures 3 patterns et tu en utilises 2.

Edit:
Autant pour moi, en php, il est possible d'utiliser aussi les $, donc la remarque qui t'a été faite au dessus est correcte, utilise des ' au lieu des "

Invité
Invité n'ayant pas de compte PHPfrance

27 nov. 2007, 10:59

Tu utilises des doubles " dans ton $remplacement. Remplace-les par de simples '

Mon conseil : lorsque tu cales, fait un var_dump() de chaque variable présente dans le contexte.
roooooh merci Roksor.... c'était évident et je voyais pas.... un gros merci! (je peux aller me coucher maintenant!)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 nov. 2007, 14:31

Modération :
Bidibule, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute