Raccourcir une chaine

brizz
Invité n'ayant pas de compte PHPfrance

30 août 2006, 19:21

Bonjour,
J'ai trouvé ce script sur le net qui permet de rendre les URL cliquables. Mais j'aimerais savoir comment faire pour que, si ces adresses dépasse 75 caractères, elles soient rognées au delà.
			$msg = eregi_replace("(((ftp://)|(http(s?)://))(([[:alnum:]]|[-\%\.\?\=\#\_\:\&\/\~\+\@\,\;])*))","<a href = '\\0' target='_blank'>\\0</a>",$msg;
			$msg = eregi_replace("(([^/])www\.|(^www\.))(([[:alnum:]]|[-\%\.\?\=\#\_\:\&\/\~\+\@\,\;])*)","\\2<a href = 'http://www.\\4' target='_blank'>www.\\4</a>",$msg);
Exemple :
Que http://www.phpfrance.com/forums/posting ... wtopic&f=8
donne http://www.phpfrance.com/forums(...)
voire, encore mieux
hhttp://www.phpfrance.com(...)mode=newtopic&f=8

Pour que l'adresse fassse toujours au plus 75 caractères (dans l'exemple je n'ai pas compté)

Est ce possible ? D'avance merci pour votre aide[/url]

ViPHP
ViPHP | 3607 Messages

30 août 2006, 19:35

je pense qu'il va falloir t'orienter du côté de preg_replace et plus précisement de preg_replace_callback(), de manière à pouvoir utiliser une fonction comme: substr()
Voilà quelques pistes

brizz
Invité n'ayant pas de compte PHPfrance

30 août 2006, 21:07

Merci jojolapine, mais est ce que cela change la syntaxe ou je peux remplacer eregi_replace par preg_replace sans problème ? Sinon que dois je changer dans la syntaxe ? d'avance merci pour votre aide

brizz
Invité n'ayant pas de compte PHPfrance

30 août 2006, 23:39

J'ai essayé en remplaçant dans un premier temps eregi_replace par preg_replace, mais ça ne marche plus du tout... Quelles modifications dois je faire ?