PHP e Web Marketing: Fare l’anteprima di un articolo in automatico
Il PHP. Cosa c’entra con il Web Marketing? In apparenza poco… eppure la padronanza di alcuni piccoli script e delle possibilità del PHP possono aiutare molto a gestire processi automatici per generare un’adeguata comunicazione con il nostro utente (e con i motori di ricerca).
Ecco un esempio.
Fare l’anteprima di un articolo in automatico
Mettiamo di avere un sito con molti articoli. Questi articoli possono essere in qualche modo correlati tra loro con appositi script. L’esempio classico è il plugin che nei blog permette di mostrare in automatico i link agli articoli collegati (selezionati in automatico dalla script sulla base di alcuni parametri).
Ma se volessimo aggiungerci anche un paio di frasi a quel titolo?
Dovremmo estrarre anche il testo dal database ed intervenire su questo ad esempio in questo modo:
<?php echo substr($testo,0,200) ?>
per estrare i primi 200 caratteri di un testo…
Tuttavia sarebbe più opportuno prima eliminare tutti i tag html…
<?php
$testo = strip_tags($testo);
echo substr($testo,0,200)
?>
Ma non è finita: in questo caso le nostre frasi verrebbero comunque spezzate al 200° carattere, spezzando anche eventuali parole!
Per evitare questo facciamo così, troviamo la posizione del primo spazio dopo il 200° carattere e poi diciamo alla funzione substr dove terminare la frase:
<?php
$testo = strip_tags($testo);
$pos = strpos($testo, ‘ ‘, 200);
echo substr($testo,0,$pos)
?>
Il codice completo infine potrebbe essere ad esempio questo:
<?php
$testo = strip_tags($testo);
$testo = trim($testo);
if (strlen($testo)>=200) {
$pos = strpos($testo, ‘ ‘, 200);
if (!$pos) {$pos = strrpos($testo, ‘ ‘);}
echo substr($testo,0,$pos);
} else {
echo substr($testo,0,200);
}
?>
Per farla breve: elimina eventuali spazi dal conteggio, controlla che il testo sia effettivamente più lungo della lunghezza impostata per l’anteprima e, in caso affermativo, taglia il testo e controlla che la posizione del primo spazio dopo il 200° carattere non sia nulla (in caso non ci siano più spazi dopo il 200° carattere).