bueno, un enlace escrito así:
<a href="http;//www.google.com">google</a>
se ve así:
google
por lo tanto todo lo que tienes que hacer es reescribir la parte interna del tag, dejando el tag tal cual es, puedes usar una función como strlen() para conocer el tamaño
por ejemplo, si una cadena tiene mas de 20 carateres (strlen($cadena)>20), podrias tomas los primeros 10 (substr($cadena,0,10)) y los úlimos 10 (substr(-10)) y agregar los 3 puntos al medio (."...".)
o sea algo asi:
if(strlen($cadena)>20)
$texto=substr($cadena,0,10)."...".substr(-10);
como verás aunque la idea parezca complicada es muy simple, solo necesitas ingenio XD