Les Masques et la fonction preg_replace [ - Job's Done - ] Merci beleg

Les Masques et la fonction preg_replace [ - Job's Done - ] Merci beleg - PHP - Programmation

Marsh Posté le 24-02-2003 à 20:34:54    

j'aimerais comprendre comment marche les masques et cette fonction car en regardant ici : http://www.php.net/manual/fr/function.preg-replace.php, je dois vous avouer que j'ai pas avancé d'un yota...
 
donc en fait, j'aimerais prendre pour exemple ceci :  
 

Code :
  1. pattern : {[color=#}{FF0000}{]}{texte rouge}{[/color]}
  2. replacement : {<font color="#}{FF0000}{">}{texte}{</font>}
  3. subject : [color=#FF0000]hello[/color] world


 
je vous ai mis les morceaux entre {}, pour bien voir ce qui sera variable et ce qui sera constant...
 
aidez moi svp... je nage !!!


Message édité par xkamui le 24-02-2003 à 21:39:59
Reply

Marsh Posté le 24-02-2003 à 20:34:54   

Reply

Marsh Posté le 24-02-2003 à 20:54:27    

pattern : "'\[mail\]([^\[]*)\[\/mail\]'si"
replace : "<a href=\"mailto:\\1\">\\1</a>"
 
[mail]bidule@com.com[/mail]
 
autre pattern :  
"'\[img src=([^\s]*)\s*\/\]'si"
"'\[url link=(http:\/\/){0,1}([^\]]*)\]([^\[]*)\[\/url\]'si"
 
http://www.php.net/manual/fr/pcre.pattern.syntax.php
http://www.perldoc.com/perl5.6/pod [...] xpressions

Reply

Marsh Posté le 24-02-2003 à 21:04:08    

ok, ok, je vois un peu mieux...
 
alors voilàce que j'ai pour le moment :  
 

$message[2]=preg_replace("'\[color#(***)\](***)\[\/color\]'si", "<font color=\"#1\">2</font>", $message[2]);


 
les '***' signifient que je ne sais pas quoi mettre ; je ne sais pas comment lui dire : prend la valeur initialement passée...
 
et je ne comprend pas, dans tes exemples précédents, ce que veut dire : ([^\[]*), et le 'si' qu'il y a à la fin, ça signifie koi ??


Message édité par xkamui le 24-02-2003 à 21:06:23
Reply

Marsh Posté le 24-02-2003 à 21:19:41    

xkamui a écrit :

ok, ok, je vois un peu mieux...
 
alors voilàce que j'ai pour le moment :  
 

$message[2]=preg_replace("'\[color#(***)\](***)\[\/color\]'si", "<font color=\"#1\">2</font>", $message[2]);


 
les '***' signifient que je ne sais pas quoi mettre ; je ne sais pas comment lui dire : prend la valeur initialement passée...
 
et je ne comprend pas, dans tes exemples précédents, ce que veut dire : ([^\[]*), et le 'si' qu'il y a à la fin, ça signifie koi ??


 
^ Accent circonflexe
Négation de la classe, mais uniquement si placé tout au début de la classe  
 
[ Crochet ouvrant
Caractère de début de définition de classe  
 
] Crochet fermant
Caractère de fin de définition de classe  
 
[^\]]  : un caractere different de ]  
*      : plusieurs caracteres
 
"'\[color=#([A-Ba-b0-9]{5})\](.*?)\[\/color\]'si"
 

Reply

Marsh Posté le 24-02-2003 à 21:35:33    

je commence à comprendre, enfin, je pense... pour confirmation :  
 
"' => ouverture du pattern
 
\[color=# => première partie inchangé à rechercher
 
([A-Ba-b0-9] => lettre/chiffres qui peuvent faire partie de cette partie
 
{5}) => boucle (avec start à 1, donc ici, 5 fois)
 
\] => suite de la partie inchangée
 
(.*?) => texte pouvant comporter plein de mot/caractères
 
\[\/color\] => fin de la partie inchangée
 
'si" => y'a juste pour ça que je comprend pas... c'est koi le '...'si ??

Reply

Marsh Posté le 24-02-2003 à 21:37:48    

oui ...  
 
si : c les options de recherche

Reply

Sujets relatifs:

Leave a Replay

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