Tag Archive for 'stringhe'

Contare le parole contenute in una stringa

Salve a tutti,
ecco a voi uno scriptino realizzato da me in questi giorni per una semplice utility.
Lo script consiste nel contare parole contenute in una stringa.
Le funzioni utilizzate sono state:

trim(string)- per levare inutili spazi lasciati dall'utente all'inizio e fine stringa
substr_count(haystack, needle) - Per contare gli spazi presenti

PHP:
  1. <?php
  2.  
  3. $stringa="SILVIA RIMEMBRI ANCORA QUEL TEMPO DELLA TUA VITA MORTALE";
  4.  
  5. //Elimino gli spazi iniziali e finali
  6. $Spazi = trim($stringa);
  7.  
  8. //Trovo tutte le occorrenze degli spazi rimasti
  9. $Parole = substr_count($Spazi," ");
  10.  
  11. //Aggiungo una unità per tenere conto dell'ultima parola
  12. $ParoleContate = $Parole+1;
  13.  
  14. echo "HO CONTATO ".$ParoleContate." PAROLE!!!";
  15.  
  16. ?>

La funzione substr_count viene utilizzata per contare gli ulteriori spazi rimanenti dopo l'eliminazione di questi da inizio e fine stringa attraverso la funzione trim.
Dopodichè aggiungo una unità al totale degli spazi contati per tenere conto dell'ultima parola dopo l'ultimo spazio.

Ecco quà, fatemi sapere se vi è stata utile, o se avete altre soluzioni, sicuramente più performanti della mia.

Cristian

Formattare un testo

Chi fa il web master o il web developer sa che una delle cose più fastidiose è quando il cliente fornisce i testi scritti tutto in maiuscolo. Altrettanto fastidioso è quando un cliente ha l'amministrazione dei contenuti del sito e, appunto, ha il brutto vizio a scrivere tutto in maiscolo.
Con questa funzione il testo viene riformattato con il primo carattere dopo il punto in maiuscolo, e il resto in minuscolo.
Di particolare importanza 2 funzioni:

PHP:
  1. $text="TEST. TESTO MAIUSCOLO. COME FARE.";
  2.  
  3. function formatta_testo ($stringa){
  4.     $stringa = explode ('.', $stringa);
  5.     $n = count ($stringa);
  6.     for ($i = 0; $i <$n; $i++){
  7.         $stringa[$i]  = ucfirst(strtolower (trim ($stringa[$i])));
  8.         if ($i> 0){
  9.             $stringa[$i] = '&nbsp;' . $stringa[$i];
  10.         }
  11.     }
  12.     $stringa = implode ('.', $stringa);
  13.     return $stringa;
  14. }
  15.  
  16. echo formatta_testo ($text); // Test. Testo maiuscolo. Come fare.

Contare i caratteri di una stringa

Prendo spunto da una chiave di ricerca utilizzata per arrivare qua.
Contare i caratteri di una stringa in php è molto semplice perchè esiste già una funzione adatta a questo scopo:
strlen($stringa)
Una cosa da tenere sempre presente è che gli spazi vuoti sono considerati un carattere come qualsiasi altro e vengono quindi conteggiati.

PHP:
  1. $stringa = "sempreverde";
  2. echo strlen($stringa); // il risultato sarà 11
  3.  
  4. $stringa = "stringa con spazi vuoti";
  5. echo strlen($stringa); // il risultato sarà 23

Troncare una stringa

In alcuni casi puoi aver necessità di riportare solo una parte di una stringa molto lunga. Ad esempio quando devi far vedere il preview di una news. A questo scopo torna utilissima una funzione già bella pronta di php:
substr ( string ,start [,length] )
i 3 paramentri da prendere in considerazioni sono:

  • la stringa su cui devi lavorare (string)
  • la posizione di partenza (start)
  • il numero di caratteri che vuoi visualizzare (length)

ecco ad esempio come prendere i primi 35 caratteri del primo verso della Divina Commedia

PHP:
  1. $string ="Nel mezzo del cammin di nostra vita
  2. mi ritrovai per una selva oscura,
  3. ché la diritta via era smarrita.
  4. ";
  5. $preview = substr($string, 0, 35); // "0" indica l'inizio
  6. echo $preview." ...";

Il risultato dell'echo sarà:
"Nel mezzo del cammin di nostra vita ..."
...
come invece contare le parole e non i caratteri, te lo faccio vedere un'altra volta