Bonjour,
Dans cette discussion, je cherchais comment extraire d'un texte les url pour les transformer en lien actif.
J'y suis arrivé mais maintenant je veux réduire les url trop longues à l'affichage à leurs 30 premiers caractères suivis de '...'.
Exemple :
Cela devrait devenir :Voici un texte avec une url http://www.unsite.com/le-titre-super...t-sur-son-lien
J'ai essayé de jouer avec les fonction preg_ de PHP mais je cale.Voici un texte avec une url www.unsite.com/le-titre-super-...
J'arrive d'une part à preg_replace les url complètes du texte, comme expliqué dans l'autre discussion. J'arrive par ailleurs à extraire les urls à l'aide de preg_match_all. J'ai essayé aussi un coup de preg_split mais je ne vois pas comment assembler le tout pour avoir évidemment l'url complète dans la balise <a> et l'url raccourcie à l'affichage donc entre <a> et </a>.
Pour le moment, pour transformer les url, je fais ceci :
Une idée ou une fonction qui va bien à me proposer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $pattern = '`(https?://|www)([a-zA-Z0-9\/.\-_]+)`'; $replacement = "<a href='\\1\\2' class='urldansmsg' target='_blank' >\\1\\2</a>"; $texte = preg_replace($pattern, $replacement, $info['message']); $pattern = "`href='www`"; $replacement = "href='http://www"; $texte = preg_replace($pattern, $replacement, $texte); echo $texte;
EDIT :
En fait je voudrais faire quasiment comme ça s'affiche dans ce message !
Partager