[PHP-RegExp] preg_replace(). J'ai un problème
hans88
Messages postés
122
Statut
Membre
-
hans88 Messages postés 122 Statut Membre -
hans88 Messages postés 122 Statut Membre -
Bonjour,
J'ai un chaîne de caractères contenant plusieurs occurrences d'une valeur que je voudrais bien récupérer...
$chaine = "[b]Val1/b blablabla [b]val2/b";
$chaine = preg_replace("/\[b\](.*)\/b\(.*)\[b\](.*)\/b\/", "<strong>$1</strong>$2<strong>$3</strong>", $chaine);
le truc c'est que rien ne se passe comme je le souhaite ! La première parenthèse capturante récupère toute la chaine !
Je ne sais pas si je m'y prend mal avec les RegExp... si c'est le cas, débloquez moi s'il vous plaît, sinon, comment puis-je faire pour traiter chaque parenthèse capturante ?
Merci
J'ai un chaîne de caractères contenant plusieurs occurrences d'une valeur que je voudrais bien récupérer...
$chaine = "[b]Val1/b blablabla [b]val2/b";
$chaine = preg_replace("/\[b\](.*)\/b\(.*)\[b\](.*)\/b\/", "<strong>$1</strong>$2<strong>$3</strong>", $chaine);
le truc c'est que rien ne se passe comme je le souhaite ! La première parenthèse capturante récupère toute la chaine !
Je ne sais pas si je m'y prend mal avec les RegExp... si c'est le cas, débloquez moi s'il vous plaît, sinon, comment puis-je faire pour traiter chaque parenthèse capturante ?
Merci
A voir également:
- [PHP-RegExp] preg_replace(). J'ai un problème
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
je voit pas trop pourquoi dans ta chaine de départ pour encadrer au debut on a [b] et à la fin on a /b pour encadrer tes mots à mettre en gras mais admettons que c'est ça alors cela donnerai ce code :
$chaine = "blabla [b]Val1/b blablabla [b]val2/b blabla";
$chaine = preg_replace("/\[b\]/","<strong>", $chaine);
$chaine = preg_replace("/\/b/","</strong>", $chaine);
echo $chaine;
$chaine = "blabla [b]Val1/b blablabla [b]val2/b blabla";
$chaine = preg_replace("/\[b\]/","<strong>", $chaine);
$chaine = preg_replace("/\/b/","</strong>", $chaine);
echo $chaine;
Désolé, j'ai pas relu mon post après l'avoir posté !
c'est pas des /b, mais des "[ / b ]" (sans les espace)
(ccm ne veux pas bien l'afficher même quand j'utilise l'outil code !, je vien de modifier ce post, même chose !)
J'avais pas utilisé l'outil <code > de ccm
Mais merci déjà pour ta réponse...
Ce que je veux faire exactement c'est récupérer les différentes valeurs capturées ! Dans mon pattern, il y a trois parenthèses capturantes, mais que je l'exécute, c'est le $1 qui récupère le tout !
c'est pas des /b, mais des "[ / b ]" (sans les espace)
(ccm ne veux pas bien l'afficher même quand j'utilise l'outil code !, je vien de modifier ce post, même chose !)
J'avais pas utilisé l'outil <code > de ccm
$chaine = "[b]Val1[ / b] blablabla [b]val2[ / b ]";
$chaine = preg_replace("/\[b\](.*)\[ / b \](.*)\[b\](.*)\[ / b \]/", "<strong>$1</strong>$2<strong>$3</strong>", $chaine);
Mais merci déjà pour ta réponse...
Ce que je veux faire exactement c'est récupérer les différentes valeurs capturées ! Dans mon pattern, il y a trois parenthèses capturantes, mais que je l'exécute, c'est le $1 qui récupère le tout !