je bute sur un problème de regex.
je cherche à réduire le texte qui s'affiche dans un lien.
exemple :
je cherche à remplacer :
Code :
- <a href="http://www.monsite_tres_tres_tres_long.com">http://www.monsite_tres_tres_tres_long.com</a>
|
par :
Code :
- <a href="http://www.monsite_tres_tres_tres_long.com">http://www.monsite...</a>
|
pour l'instant, la seule chose que j'arrive à faire c'est supprimer complètement le lien (regex toute faite) et garder le texte vierge :
Code :
- preg_replace('/<a href="(.*?)">(.*?)<\\/a>/i', '$2', $chaine)
|
j'ai cru comprendre que le '$2' , comme deuxième argument de preg_replace, renvoie à (.*?), mis en gras ci dessus.
ensuite, je peux rajouter le lien, grace à une fonction trouvée sur php.net/preg_match :
Code :
- preg_replace("/\s(([a-zA-Z]+:\/\/)([a-z][a-z0-9_\..-]*
- [a-z]{2,6})([a-zA-Z0-9\/*-?&%]*))\s/i", " <a href=\"$1\">$3</a> ", $chaine);
|
là, je dois agir sur le $3, mais je ne sais pas comment en réduire la longueur...
pour résumer,
comment je peux faire pour garder le lien (attribut href) entier, mais réduire le texte affiché ?
je sèche un peu ...
merci de votre aide
Message édité par nabbo le 19-09-2007 à 00:11:11