Quante volte vi è capitato di dover creare una funzione in php che permetta di creare un’anteprima dell’articolo in un piccolo box dove inserire del testo semplice non formattato partendo da un testo html?

Questa funzione permette di troncare un testo html senza troncare le parole contenute in esso, convertendolo in un testo semplice.

Bhè, visto che è un argomento abbastanza ricorrente per chi realizza piattaforme web, orientate alla gestione e alla visualizzazione di contenuti editoriali; credo che questa piccola funzioncina possa essere di notevole aiuto ; )

Il codice

function troncaTesto( $txt, $nCar = 30 )
{ strip_tags( $txt );
if( strlen( $txt ) <= $nCar )
return $txt;
$nuovo = wordwrap( $txt , $nCar, "|" );
$nuovotesto = explode( "|" , $nuovo );
return $nuovotesto[ 0 ] . "...";
}

Algoritmo e descrizione:

  • recuperiamo in entrata il testo da troncare e il numero di caratteri che vogliamo visualizzare;
  • ripuliamo il testo da tutti gli eventuali tag html presenti;
  • controlliamo se la lunghezza della stringa è inferiore o uguale al valore dei caratteri da visualizzare, la restituiamo in uscita così come sta;
  • se così non fosse inseriamo un delimitatore ( ‘|’ ) nel testo per separare i primi nCaratteri della stringa dai restanti in più;
  • dividiamo la stringa in array lì dove troviamo il delimitatore;
  • restituiamo in uscita l’array della riga precedente in posizione 0, cioè le prima nLettere del testo seguite dai tre puntini di sospensione.

Vantaggi:

Partendo da un testo html si tronca un testo negli spazi vuoti, senza tagliare le parole. Come avverrebbe con la funzione <i>substring()</i>, che non funzionerebbe con un testo html.

Spero possa esservi stato d’aiuto : P

Lascia un commento