 Come contare una parola in una stringa
Come contare una parola in una stringa. A volte può essere utile conoscere quante volte una parola è contenuta in un testo. Ad esempio, se gestite un forum è utile filtrare i commenti reali dagli utenti da quelli automatici contenenti soltanto una serie infinita di link e indirizzi Url. A questo fine è utile contare il numero di volte che si ripete nel testo il tag Html del link. Il linguaggio PHP consente facilmente di contare il numero delle ripetizioni di una parola all'interno di una stringa alfanumerica tramite la funzione SUBSTR_COUNT. La funzione ha la seguente sintassi:
| int substr_count ( stringa in cui cercare , stringa da cercare [, posizione di offset [, lunghezza massima ]] ) |
Esempio della funzione Php
Per agevolare la comprensione della funzione SUBSTR_COUNT ci baseremo su un esempio di fantasia. Poniamo di voler conoscere quante volte è contenuta la parola "Roma" all'interno di una $variabile di testo.
| $stringa="La città di Roma è la capitale d'Italia. Roma è anche il capoluogo della Regione Lazio ...."; |
Per contare il numero di volte che appare la parola Roma nella stringa alfanumerica utilizziamo l'istruzione seguente:
| $conta_parole=substr_count($stringa, "Roma"); |
La funzione conta il numero di apparizioni della parola all'interno della stringa e registra il numero nella variabile $conta_parole. A questo punto possiamo gestire il dato numerico nel resto del programma PHP. Nell'istruzione che segue stampiamo il risultato a video.
| echo "Ho contato ".$conta_parole." la parola Roma nella stringa"; |
Come contare una parola in una sottostringa
Per concludere la spiegazione della funzione SUBSTR_COUNT analizziamo anche gli ultimi due parametri facoltativi della funzione. Il parametro OFFSET specifica la posizione iniziale della stringa in cui cercare e contare la parola. Di default questo parametro è posto a zero, pertanto la funzione inizia a contare il numero di apparizioni della parola fin dall'inizio della stringa. Se avessimo scritto nel seguente modo
| $conta_parole=substr_count($stringa, "Roma", 20); |
la stringa avrebbe iniziato la ricerca a partire dal 20° carattere della stringa trovando una sola ripetizione della parola "Roma" (la seconda) all'interno della stringa parziale. L'ultimo parametri definisce infine la lunghezza massima della stringa in cui cercare la parola. Di default questo parametro è settato per includere tutto il contenuto della stringa. Poniamo adesso di voler cercare soltanto nei primi venti caratteri della stringa. Per riuscirci scriveremo nella seguente sintassi:
| $conta_parole=substr_count($stringa, "Roma", 0, 20); |
La funzione inizierà la ricerca dal primo carattere della stringa fino al 20°, trovano al suo interno una sola ripetizione della parola Roma (la prima). L'uso combinato del parametro OFFSET e della lunghezza massima ci permette anche di focalizzare la ricerca all'interno di una sottostringa specifica. Ad esempio, scrivendo nel seguente modo:
| $conta_parole=substr_count($stringa, "Roma", 9, 6); |
la funzione SUBSTR_COUNT inizia la ricerca a partire dal 9° carattere della stringa fino al 15° carattere (10 carattere come posizione iniziale + 6 caratteri di lunghezza massima). Nel precedente esempio la sottostringa individuata da questi parametri ha il contenuto uguale a "di Rom". In quest'ultimo esempio la funzione non trova alcuna ripetizione della parola ricercata (Roma) fornendo come risultato di output il valore zero.
Commenti
Scrivi
il tuo commento sulla pagina
"Come contare una parola in una stringa "
Link utili per approfondire il tema Php programmazione informatica Segnala un sito/link di approfondimento
|