ok ho fatto le vostre modifiche:
Codice PHP:
function troncaTesto($testo$caratteri 300) {
    if (
strlen($testo) <= $caratteri) {
        return 
$testo;
    }

    
$ultimo substr($testo, -1);
    
$preg preg_match("#<a(.*?)</a>#i"$ultimo);
    echo 
'<script type="text/javascript">alert("' $preg '");</script>';
    if (
$preg 0) {
        
$caratteri 500;
    }

    
$nuovo wordwrap($testo$caratteri"|");
    
$nuovotesto explode("|"$nuovo);
    return 
$nuovotesto[0] . "...";

$preg è 0.
ma io sono sicuro che nn è cosi e che il 300 caratter sta in un link (quindi nel tag <a....</a>).