così dovrebbe andare

$testo = preg_replace("/\[LINK\](.*?)\[\/LINK\]/i", "\";echo \"\".substr(\"$1\", 0, 20).\"...\".substr(\"$1\", strlen(\"$1\")-5, 5).\"\"; echo \"", $testo);
eval("echo \"".$testo."\";");