Expression régulière pour raccourcir une url !

WRInaute discret
Bonjour à tous...

J'utilise une expression régulière dans mon code PHP pour repérer les url automatiquement et les transformer en liens... (fait maison, donc pas forcément optimisé), mais je voudrais maintenant que les liens trop longs, dépassant tant de caractères soient raccourcis à l'affichage en séparant le début et la fin par "..." ! Or par exemple la fonction substr() ne marche pas sur le \3 ...

Voici l'expression actuelle :

$text = preg_replace("#([\n ])?([hftp]+)://([a-z0-9-=_%\#$~%&;?./]+)#i", '\1<a href="\2://\3" target="_blank">\2://\3</a>', $text);


Si quelqu'un a une idée, je suis preneur, merci d'avance :)
 
WRInaute passionné
Tdv a dit:
Bonjour à tous...

J'utilise une expression régulière dans mon code PHP pour repérer les url automatiquement et les transformer en liens... (fait maison, donc pas forcément optimisé), mais je voudrais maintenant que les liens trop longs, dépassant tant de caractères soient raccourcis à l'affichage en séparant le début et la fin par "..." ! Or par exemple la fonction substr() ne marche pas sur le \3 ...

Voici l'expression actuelle :

$text = preg_replace("#([\n ])?([hftp]+)://([a-z0-9-=_%\#$~%&;?./]+)#i", '\1<a href="\2://\3" target="_blank">\2://\3</a>', $text);
Si quelqu'un a une idée, je suis preneur, merci d'avance :)
Code:
function limitText($text,$limit="30")
{
	if(strlen($text)>=$limit)
	{
		$text=substr($texte,0,$limit); 
		$repere=strrpos($text,"-"); 
		$text=substr($text,0,$repere)."...";
	} 
	return $text;
}

ça devrait le faire je pense :-D
a voir quelle signe prendre pour strrpos par contre, pour marquer la position à partir de laquelle l'url va être tronquée :?
 
WRInaute discret
Pas si simple ;)

Merci pour vos réponses... en effet je pourrais simplement remplacer par "lien" .. mais bon, dommage pour les liens courts qui pourraient apparaitre tels quels...

Et je crains que ce soit un peu plus compliqué que cela... mon $text peut contenir tout un article et plusieurs liens dedans ! Donc mon expression régulière repère les liens et les traite ensuite... Mais les mots peuvent être de toutes tailles et il n'y a bien que les liens qui doivent être raccourcis... Au pire je traite l'article mot à mot et je raccourcis les mots trop longs, liens ou non... mais bon, ça me parait du temps processeur pour pas grand chose... :/
 
Discussions similaires
Haut