intanto lo zero nella funzione urlcut non devi passarlo visto che non serve
poi, quelle graffe cosa sono?

un codice così è corretto
Codice PHP:
function urlcut($link$n){
if(
strlen($link) <= $n) return $link;
return 
substr($link0$n) . '...';
}

$tabella "<table width=\"700\" height=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\"border=\"0\" bordercolor=\"#c0c0c0\">";
$tabella .= "<tr><td width=\"150\" bgcolor=\"#f3f3f3\" class=\"tabella\">[b]<font class=\"carattere\">" $nome "</font>[/b]";
$tabella .= "
<font class=\"carattere\">Scritto il: " 
$data "
Ore: " 
$orario "
Città: " 
$citta "
Email: <a href=\"mailto:
$email\">" substr($email,0,18) . "</a>
Sito: <a href=\"
$url\">" urlcut($url,20) . "</a></font></td>"
Nelle graffe che hai messo tu qualcosa non mi torna, magari posta una porzione maggiore di codice