[PHP]Les expressions régulières
Bonjour,
je code en PHP une colorisation syntaxique du html.
Jusqu'ici tout va bien
Mais, je suis confronté à un problème qui me rend fou.
Lorsque je cherche à colorer les balises, la regex n'est pas prise en compte.
Par exemple:
Idem pour les attributs.
Une solution?
Merci.
je code en PHP une colorisation syntaxique du html.
Jusqu'ici tout va bien
Mais, je suis confronté à un problème qui me rend fou.
Lorsque je cherche à colorer les balises, la regex n'est pas prise en compte.
Par exemple:
function colorer($code)
{
$code_regexp = preg_replace('#</?.+>#iU','<span style="color:red">$0</span>',$code);
return $code_regexp;
}
echo colorer($code);
Idem pour les attributs.
Une solution?
Merci.
A voir également:
- [PHP]Les expressions régulières
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
2 réponses
function colorer($code)
{
$code_regexp = preg_replace(''<(.+)>'isU','<span style="color:red">$0</span>',$code);
return $code_regexp;
}
echo colorer($code);
si ce sont bien les crochets qui determine le preg_replace, essayes comme çà
edit les quote du alt Gr + 7 n'ont pas été pris en compte, il faut les mettre entre
<(.+)>
Ta regexp n'est pas bonne, car ta regexp commence à la première ouverture de balise et s'arrête à la dernière fermeture de balise.
Tu ferais mieux d'injecter l'attribut style dans les balises ouvrantes :
Après on peut aller plus loin, mais probablement avec des callbacks.
Tu ferais mieux d'injecter l'attribut style dans les balises ouvrantes :
function colorer($code)
{
$code_regexp = preg_replace('#(<(?!/)[^>]+)>#is','$1 style="color:red">',$code);
return $code_regexp;
}
echo colorer($code);
Après on peut aller plus loin, mais probablement avec des callbacks.