[PHP]syntaxe pour mon expression reguliere

syntaxe pour mon expression reguliere [PHP] - Programmation

Marsh Posté le 03-03-2002 à 17:21:46    

j'ai besoin d'un coup de main,
dans $body, un texte quelconque
je peux avoir
"debut [color=#ff0000]une partie de body[/color] fin"
 
j'ai besoin de remplacer "[color=#ff0000]"
par "<font color=#ff0000>"
en utilisant preg_replace
 
j'ai essayé  
$body=preg_replace("/[color=([a-f0-9#])+]/i", "<font color="$1">", $body);
mais ça marche pô
j'ai suspecté mon "[a-f0-9]" de ne prendre que le premier caractere
mais en fait il ne prend rien du tout!
 
j'utilise ca pour mon "phorum" perso
(phorum.org)

Reply

Marsh Posté le 03-03-2002 à 17:21:46   

Reply

Marsh Posté le 03-03-2002 à 18:04:06    

Code :
  1. $body = preg_replace("/\[color=([a-f0-9#])+\]/i",
  2.                       "<font color="$1">",
  3.                       $body);

?
 
Je m'y connais rien en PHP, mais j'imagine que ton problème doit se résoudre comme en Perl: déspécialisation des crochets.

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 03-03-2002 à 19:45:00    

en fait j'ai trouve
c'est le + qui etait mal place (avant la parenthese)
maintenant ca roule
$body=preg_replace("/\[color=([a-f0-9#]+)]/i", "<font color="$1">", $body);  
 
j'avais en effet oublie un \  
preg_replace est une fonction compatible perl pour php
j'ai jamais fait de perl
 
merci krueger
 
tu sais comment chercher ' en perl ?

Reply

Marsh Posté le 03-03-2002 à 22:40:36    

Ah, oui en effet j'avais pas vu le + mal placé.
Sinon pour chercher ' normalement tu peux le mettre tel quel. Il faudra le déspécialiser s'il se trouve dans une chaîne de caractères.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed