disign | PHP: anteprima del testo | a digital sign for a best design!
A digital sign for a best design

Articolo stampato da http://disign.improntedigitali.it/php-anteprima-del-testo-332-2-1.html

© Luca Frassineti

Programmazione 6.327 visualizzazioni

PHP: anteprima del testo

13/02/2012

Una comodissima funzione per estrarre da un testo una breve anteprima di un numero di caratteri deciso diversamente ad ogni chiamata, ripulendo il testo stesso dagli eventuali tag html per impedire che il 'taglio' cada dentro un tag o prima della chiusura dello stesso, con nefaste conseguenze su tutto il resto dell'impaginato html.

 

La funzione permette inoltre di decidere di volta in volta se aggiungere alla fine del testo tagliato i classici tre puntini (o altro simbolo / carattere).

 

La chiamata della funzione quindi va fatta fornendo tre parametri:

echo anteprima($testo, '130', false);

Il primo parametro è il testo da tagliare, il secondo il numero di caratteri da prelevare, il terzo può esser true se si si vuol aggiungere un simbolo  come i tre puntini, false se non lo si vuol fare.

Ecco la funzione:

function anteprima($testo, $lunghezza, $puntini) {
 
     $ellipses = $puntini;
    
    // eliminazione tag
        $testo = strip_tags($testo);

    // se il testo è già più corto della lunghezza massima viene restituito pulito dai tag
    if (strlen($testo) <= $lunghezza) {
        return $testo;
    }

    // cerca l'ultimo spazio per non restituire parole tagliate
    $ultimo_spazio = strrpos(substr($testo, 0, $lunghezza), ' ');
    $ant = substr($testo, 0, $ultimo_spazio);

    // aggiunge i ... ad indicare che segue
    if ($ellipses) {
        $ant .= '...';
    }
    
    // restituisce l'anteprima pulita dai tag e del numero di caratteri massimo
    return $ant;
}

 

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 




Questo sito è totalmente privo di pubblicità, se volete sostenere questa inziativa, potete scegliere di fare una piccola donazione libera:



© 2009 - 2024 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.