Bonjour, j'ai un problème avec une expression régulière que je n'arrive pas à mettre sur pieds...
Le but :
Transformer dans un texte des noms en liens.
Le texte :
Ceci est un texte d'exemple avec des noms propres, comme [p]Sébastien Rittout[/p] ou d'autres qui peuvent apparaître n'importe ou dans le texte [p]José Rigou[/p].
Les noms de personnes sont encadrée par des balises genre BBCode, tous les nom ont la balise [p] au début et la balise [/p] pour les terminer.
Voilà la transformation que je devrais arriver à faire :
[p]Jean-Paul Nicod[/p]
en
<a href="http://www.nomdedomaine.com/personne,jean-paul_nicod">Jean-Paul Nicod</a>
et ceci bien sûr avec n'importe quel nom, et toutes les occurrences dans le texte.
Pour remplacer les majuscules et les caractères spéciaux par leur équivalent, je me sert de cette fonction.
$chaine = strtolower(strtr($nom,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ' ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn-_"));
cela a pour effet de mettre le nom en minuscule et de remplacer les caractères spéciaux pour l'url rewriting.
Maintenant le but, c'est d'avoir une fonction, capable :
1. de mettre en miniuscule
2. de remplacer les caractères spéciaux par leur équivalent é en e etc...
3. et de transformer en lien
J'ai pensé à ereg_replace
Mais les caractères [] sont utilisés dans les expressions régulières pour délimiter des suites de caractères, il faut en plus y ajouter des caractères d'échappement. Je ne m'en sors pas!!!
Si quelqu'un a la science infuse des expressions régulières, cela m'aiderait grandement...
Le but :
Transformer dans un texte des noms en liens.
Le texte :
Ceci est un texte d'exemple avec des noms propres, comme [p]Sébastien Rittout[/p] ou d'autres qui peuvent apparaître n'importe ou dans le texte [p]José Rigou[/p].
Les noms de personnes sont encadrée par des balises genre BBCode, tous les nom ont la balise [p] au début et la balise [/p] pour les terminer.
Voilà la transformation que je devrais arriver à faire :
[p]Jean-Paul Nicod[/p]
en
<a href="http://www.nomdedomaine.com/personne,jean-paul_nicod">Jean-Paul Nicod</a>
et ceci bien sûr avec n'importe quel nom, et toutes les occurrences dans le texte.
Pour remplacer les majuscules et les caractères spéciaux par leur équivalent, je me sert de cette fonction.
$chaine = strtolower(strtr($nom,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ' ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn-_"));
cela a pour effet de mettre le nom en minuscule et de remplacer les caractères spéciaux pour l'url rewriting.
Maintenant le but, c'est d'avoir une fonction, capable :
1. de mettre en miniuscule
2. de remplacer les caractères spéciaux par leur équivalent é en e etc...
3. et de transformer en lien
J'ai pensé à ereg_replace
Mais les caractères [] sont utilisés dans les expressions régulières pour délimiter des suites de caractères, il faut en plus y ajouter des caractères d'échappement. Je ne m'en sors pas!!!
Si quelqu'un a la science infuse des expressions régulières, cela m'aiderait grandement...