[PHP] Quanti tag <li> ci sono nella pagina?

Per chi non lo sapesse, ho iniziato una fruttuosa collaborazione con il sito Web Master Point, grazie a Guido (sono praticamente il suo braccio destro). Solitamente traduco articoli tecnici dall'inglese all'italiano, presto forse comincerò a trattare guide un po' più lunghe.

In questa pagina sono elencati, tramite una lista non ordinata, gli articoli che ho scritto fino ad oggi. Ma se volessi tenerne il conto? Di certo non mi metto a contarli a mano, quindi mano al codice.

La pagina in questione è strutturata per mezzo di fogli di stile con classi che si applicano alle liste non ordinate per creare menu dinamici. E' quindi importante parsare il contenuto del file PHP e non il suo output HTML per conteggiare il numero di tag <li> presenti, poichè i menu e gran parte della struttura della pagina vengono creati dinamicamente da PHP.

Ecco il codice semplice semplice:

$url = basename($_SERVER["PHP_SELF"]);
$input = file_get_contents($url) or die(Non riesco a leggere il file: $url');
if(preg_match_all("/<li>/i", $input, $matches))
echo count($matches[0])-1; // non contiamo quello usato per l'espressione regolare

Questo semplice codice ha l'effetto di costruire un array contenente tutte le occorrenze del tag <li>. Nell'ultima riga stampiamo la dimensione dell'array decrementandola di uno per non considerare il tag <li> presente nell'espressione regolare. Questo ci darà il numero di articoli scritti.

2 comments:

Teo ha detto...

complimenti per il passo in avanti ;) meriti!

Christian Castelli ha detto...

@Teo: merci ;)

Byte Strike Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger