Tagliare stringhe, anche HTML, con PHP e poche righe di codice

Sempre per ‘colpa’ di New-Framework, mi sono imbattuto in un problema non indifferente. Creando delle tabelle per la visualizzazione rapida dei dati nel database, mi sono accorto che alcuni testi risultavano molto lunghi e avevo bisogno di visualizzarne solo una parte.
Per questo esistono molte funzioni adatte ma poche e prolisse che comprendessero anche il codice html.
Visto che i campi non si sa anticipatamente di che tipo siano, se testo o html, ho trovato alcuni spunti, debitamente modificati, che risolvono il problema.
Ecco il codice:

function taglia_stringa($stringa, $caratteri=50) {

	//Elimino momentaneamente i tag html
	$stringa2 = strip_tags($stringa); 

	//Se la stringa è maggiore dei caratteri consentiti allora la taglio
	if(strlen($stringa2)>$caratteri){

		//Taglio la stringa
		$stringa2 = substr($stringa2, 0, $caratteri); 

		// Usiamo gli ultimi 10 caratteri per analizzare la posizione della stringa nel testo
		$posizione = strpos($stringa, substr($stringa2, -10));

		//Ricreo la stringa con la nuova posizione
		$stringa = substr($stringa, 0, $posizione).'...'; 

	}
	return $stringa;
}

Se dovessero esserci dei problemi del tipo: “la stringa non compare”, modificate il numero 10 che analizza la stringa prendendo in esame gli ultimi 10 caratteri, con un numero differente, a seconda del tipo di testo che andrà inserito.

N.B. Le parole verranno troncate, quindi se avete necessità di tenerle integre, ci sono in giro altri script che potrete implementare in questo codice per aggiungere questa variante. Suvvia, un pò di immaginazione 😉

Annunci
  1. Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: