Quando abbiamo del testo, ad esempio in una descrizione di un oggetto è buona norma voler troncare tale descrizione ad una certa lunghezza di caratteri, pensate ad una descrizione lunga all'interno di un div che a causa della lunghezza dei caratteri crea brutta armonia di linee nella pagina del sito, potrebbe essere utile alle volte troncare e inserire un link al testo completo in un'altra pagina del sito.
Vediamo un esempio di come può apparire una serie di contenitori div con del testo e dimensioni non armoniche:
Overflow di una stringa
Nel caso si volesse lasciare tutto il testo ma ridefinire le misure dei div ad una certa dimensione uguale per tutti, allora è possibile applicare una regola css per nascondere il testo entro certi parametri di altezza e lunghezza, ad esempio utilizzando:
.overflow-auto {
overflow: auto !important;
}
.mioDiv{
width: 200px;
height:100px;
border: 1px solid #410304
}
e il div
<div class="mioDiv overflow-auto">
Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblò per preparare un testo campione. È sopravvissuto non solo a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione dei fogli di caratteri trasferibili “Letraset”, che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, che includeva versioni del Lorem Ipsum.
</div>
In questo il testo sarà scorrevole all'interno del div senza compromettere le misure di altezza e larghezza come in figura:
Tagliare una stringa in Php
Ma veniamo a come tagliare il testo utilizzando delle funzioni di Php
Ipotiziamo di aver un campo descrizione in un database e richiamare i dati memorizzandoli all'interno di una variabile che chiameremo $stringa
$stringa = 'Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblò per preparare un testo campione. È sopravvissuto non solo a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione dei fogli di caratteri trasferibili “Letraset”, che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, che includeva versioni del Lorem Ipsum.';
per poter taglie la stringa alla lunghezza desiderata creiamo una funzione TagliaStringa()
function TagliaStringa($stringa, $car_massimi){
if(strlen($stringa)>$car_massimi){
$stringa_tagliata = substr($stringa, 0, $car_massimi);
$ultimo_spazio = strrpos($stringa_tagliata," ");
$stringa_ok = substr($stringa_tagliata, 0, $ultimo_spazio);
return $stringa_ok."...<a href=#>Leggi Tutto</a>";
}else{
return $stringa;
}
}
$stringa_tagliata = TagliaStringa($stringa, 140);
dove $stringa conterrà la stringa e $max_char sarà un numero intero relativo alla lunghezza dei caratteri compresi gli spazi, es: TagliaStringa($stringa, 140);
Il nostro codice per intero:
$stringa = 'Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblò per preparare un testo campione. È sopravvissuto non solo a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione dei fogli di caratteri trasferibili “Letraset”, che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, che includeva versioni del Lorem Ipsum.';
function TagliaStringa($stringa, $car_massimi){
if(strlen($stringa)>$car_massimi){
$stringa_tagliata = substr($stringa, 0, $car_massimi);
$ultimo_spazio = strrpos($stringa_tagliata," ");
$stringa_ok = substr($stringa_tagliata, 0, $ultimo_spazio);
return $stringa_ok."...<a href=#>Leggi Tutto</a>";
}else{
return $stringa;
}
}
$stringa_tagliata = TagliaStringa($stringa, 140);
echo '<h2>Risultato:</h2><br>'.$stringa_tagliata;