Oggi spiegherò brevemente come realizzare una soluzione fai da te per spezzare un testo lungo in un punto preciso, scelto da noi, creando qualcosa di simile a quello che fa il tag more di WordPress.

Supponiamo di voler inserire delle news su un nostro sito web e di avere 2 pagine, una che mostra un elenco di riassunti e una che mostra l’articolo per intero.

Il procedimento è molto semplice e si avvale di una stringa scelta da noi e di 2 funzione PHP.

Per iniziare scegliamo una parola da inserire nel testo che fa da divisore e la racchiudiamo fra parentesi quadre (es [TAGLIA]).

Il testo verrebbe cosi:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.

[TAGLIA]

It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

Nella pagina che si occuperà di visualizzare solo una parte del testo dobbiamo utilizzare la funzione explode() di PHP modificata nel seguente modo

$q_news_tot='SELECT * FROM news';//carico tutte le news
$ris_news_tot=mysql_query($q_news_tot);
while ($riga_news=mysql_fetch_array($ris_news_tot))
{
   $db_testo=html_entity_decode($riga_news["testo"]);//prendo il testo dal database
   $db_testo_tagliato=explode("[TAGLIA]",$db_testo);//trasforma la seconda stringa in un array, usando la prima per separare gli elementi.
   $db_testo_tagliato=$db_testo_tagliato[0];//prendiamo il primo elemento dell'array e cioè quello che a noi interessa
   echo $db_testo_tagliato;//visualizziamo il testo tagliato.
}

La funzione echo visualizzerà solo

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.

Nella pagina che visualizzerà la news per intero dobbiamo fare in modo che non venga stampato il separatore [TAGLIA]. E qui viene in gioco la funzione str_replace() di PHP.

Utilizziamo lo stesso ciclo di prima per visualizzare gli articoli

$q_news_tot='SELECT * FROM news';//carico tutte le news
$ris_news_tot=mysql_query($q_news_tot);
while ($riga_news=mysql_fetch_array($ris_news_tot))
{
   $db_testo=str_replace('[TAGLIA]','',html_entity_decode($riga_news["testo"]));//cancelliamo la stringa[TAGLIA] dal testo
   echo $db_testo_tagliato;//visualizziamo il testo totale.
}

ora il testo sarà visualizzato per intero.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.

It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

Se utilizzate l’editor di testo Tinymce dovrete sostituire nelle funzioni explode() e str_replace() la stringa [TAGLIA] con <p>[TAGLIA]</p> in quanto l’editor racchiude le frasi in paragrafi.

Possiamo utilizzare la stessa tecnica per inserire della pubblicità o altro all’interno del testo, sostituendo la parola scelta (es [PUBBLICITA]) con il relativo codice come ad esempio quello di Adsense.

Spero che questa tecnica vi sia stata d’aiuto.