Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109

    Contare quante volte la parola è presente in una stringa

    E' possibile in qualche modo contare quante volte una determinata parola è presente in una stringa di testo?

    Vorrei limitare il numero di smile presenti in un form, qualcuno magari ha qualche soluzione?


  2. #2
    un piccolo copia/incolla dalla doc PHP:
    Count the number of substring occurrences (PHP 4, PHP 5)

    int substr_count ( string haystack, string needle [, int offset [, int length]] )

    substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109
    Grazie spoon25 ho dato un'occhiata al tuo suggerimento ma mi sono trovato in difficoltà, così ho provato ad approfondire la ricerca e ho trovato questo tipo di soluzione... caso mai può essere utile a qualcuno in futuro.

    Questo ovviamente è un esempio, potete adattarlo al vostro utilizzo, sono comunque ben accetti suggerimenti e migliorie

    codice:
    // Variabile in cui è contunuto il testo
    $testo
    
    // Array contenente gli smiles
    $smiles = array(':-)',':-D',':-(',':-P',':-s',':-n'); 
    
    // Setto il contatore a 0
    $smiley_count = 0;
    
    // Effettuo il conteggio per ogni smile dell'array
    foreach ($smiles as $v) {
          
       $p = 0;
          
       while (($p = strpos($testo, $v, $p)) !== false) {
                ++$p;
                ++$smiley_count;
          	}
    }
    
    // Se $smiley_count è superiore a 5 stampo l'errore	
    if ($smiley_count >5) { 
    
    echo "Sono stati inseriti troppi smile nel testo.";
    
    }

  4. #4
    che per finire fa la stessa che questo qui
    Codice PHP:
    <?php
    $testo 
    "";
    $smiles = array(':-)',':-D',':-(',':-P',':-s',':-n');
    $smiley_count 0;

    foreach(
    $smiles as $s){
        
    $smiley_count += substr_count($testo$s);
    }

    if(
    $smiley_count 5){
        print 
    "Sono stati inseriti troppi smile nel testo.";
    }
    ?>
    PS: se le funzioni PHP ci sono perché andar a reinventarle?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Altrimenti una cosa coì:
    Codice PHP:
    $str "Pipppo :-) Franco :-) :( ciao ;)";
    /*Esplodo per lo spazio creando un array in cui ogni cella è una parola*/
    $arrWords explode(" ",$str);

    echo 
    "<pre>";
    print_r(array_count_values($arrWords));
    echo 
    "</pre>"
    (Però dipende dal formato della tua frase...)

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.