Problème de regex en php
Résolu
-Xenon-
Messages postés
144
Date d'inscription
Statut
Membre
Dernière intervention
-
patachon -
patachon -
Bonsoir,
je suis en train de créer un script de coloration syntaxique en php pour les besoins de mon site web. Mais je me heurte à un problème...
J'ai créé une fonction régulière afin que, si le visiteur entre un commentaire ( //Mon commentaire par exemple), celui-ci soit coloré en orange :
$texte = preg_replace('#//(.+)\s$', '<span style="color:orange">$1</span>', $texte);
Mais c'est tout mon code qui est coloré en orange après les deux slashs...
J'aimerais que, lorsqu'il y a une retour chariot, la coloration en orange s'arrête... Pouvez-vous m'aider ?
Merci d'avance.
Xenon
je suis en train de créer un script de coloration syntaxique en php pour les besoins de mon site web. Mais je me heurte à un problème...
J'ai créé une fonction régulière afin que, si le visiteur entre un commentaire ( //Mon commentaire par exemple), celui-ci soit coloré en orange :
$texte = preg_replace('#//(.+)\s$', '<span style="color:orange">$1</span>', $texte);
Mais c'est tout mon code qui est coloré en orange après les deux slashs...
J'aimerais que, lorsqu'il y a une retour chariot, la coloration en orange s'arrête... Pouvez-vous m'aider ?
Merci d'avance.
Xenon
A voir également:
- Problème de regex en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Saut de ligne php ✓ - Forum PHP
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
4 réponses
Bonsoir,
Le commentaire ne doit pas contenir de saut de ligne ?
Comme un commentaire en php donc ?
Ceci devrait convenir alors.
Le commentaire ne doit pas contenir de saut de ligne ?
Comme un commentaire en php donc ?
Ceci devrait convenir alors.
$texte = preg_replace('#^//(.+)$m#', '<span style="color:orange">$1</span>', $texte);
Elle est bizarre ta regex, j'aurais plutot fais ça comme ceci (si j'ai compris ce que tu voulais faire)
preg_replace('#'.$commentaire.'*#is', '<span style="color:orange">$0</span>', $texte)
$commentaire est le mot que le visiteur entre.
Je ne comprend pas pourquoi tu ne met pas de 2ème "#". Pour moi il faut obligatoirement en mettre un mais je ne suis pas un expert. ;)
preg_replace('#'.$commentaire.'*#is', '<span style="color:orange">$0</span>', $texte)
$commentaire est le mot que le visiteur entre.
Je ne comprend pas pourquoi tu ne met pas de 2ème "#". Pour moi il faut obligatoirement en mettre un mais je ne suis pas un expert. ;)
$texte = preg_replace('#//[\sa-z0-9._/-]+#i', '<span style="color:orange">$0</span>, $texte);
Mais merci beaucoup tout de même !
Bonsoir !