Petit correctif à ce que j´ai donné, ça ne fonctionnais pas avec des URL de longueur différente.
J´ai testé avec 2 ou 3 URL, ça a l´air de fonctionner, sauf s´il y´a des paramètres (enfin, ça fonctionne, mais ce qui est affiché est dégueulasse).
<?php
$url = "http://www.aaaaaaaaaaaaaaaaaaaa.com";
$longMax = 25;
echo <a href=\"" . $url . "\">" . substr_replace($url, "[...]" . strrchr($url, "."), ($longMax - (strlen($url) - strrpos($url, ".") + 5))) . "</a>";
?>
Il suffit de modifier la valeur de $longMax pour définir la longueur de l´URL à afficher.