$contenu = eregi_replace("\[(.*)\|(.*)\]","<a href=\"\\2\" alt=\"\">\\1",$contenu);
J'aimerai remplacer les "(.*)" pour faire en sorte de sélectionner tout le texte MAIS jusqu'à ce qu'il rencontre le caractère "|" ou "]".
Comment faire ?
Je suis vraiment naze en expression régulière, j'ai essayer ce que je connaissait et je vous demande maintenant de l'aide, merci pour vos réponses.
# Remplace le point par [^|\]]
Posté par lcld . Évalué à 1.
[^] # Re: Remplace le point par [^|\]]
Posté par Castor666 . Évalué à 1.
Par contre remplacer le point par [^|\]] ne fait rien faire à eregi_replace(), elle retourne la même chaine qu'au départ.
# preg ou ereg ?
Posté par Pooly (site web personnel) . Évalué à 2.
http://uk.php.net/manual/fr/function.preg-replace.php
$contenu= preg_replace("~\[([^\|\]])+\|([^\|\]])+\]~", "<a href=\"\\2\" alt=\"\">\\1",$contenu);
mais je serais toi je ferais un peu de ménage sur \1 parceque là, t'es vulnérable à n'importe quelle attaque XSS !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.