Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    cercare parola in un testo

    Ciao a tutti....

    So che e' semplice ma mi sono perso.

    Vorrei cercare in una variabile stringa delle parole a mia scelta....

    Esempio

    $stringa = "TRASPORTATORI A DUE CATENE PER PALLET"

    voglio cercare "pallet" e vorrei che il risultato sia TRUE perche infatti c'e' la parola pallet nella mia stringa...

    Inoltre.... se avessi un campo ricerca e volessi cercare "TRASPORTATORI PALLET" vorrei che il risultato sia true perche nella stringa ci sono entrambe le parole.

    La soluzione potrebbe essere : esplodo la stringa nell'array e per ogni parola che voglio cercare ciclo e faccio il confronto?

    grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    usa strpos: se hai un vettore con più elementi puoi semplicemente fare un "ciclo" su di esse...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    se puo tornare utile

    Codice PHP:
     function findString($text,$search){
         
    $res 0;
         
         
    $pieces explode(" "$search);
         for(
    $i=0;$i<count($pieces);$i++){
            
    $pos strpos($text$pieces[$i]);
            if(
    strpos(strtoupper($text), strtoupper($pieces[$i])) === FALSE )  {
                
            }else{
             
    $res++;
             } 
         }
         return 
    $res;
     } 
    bastera controllare chce sia maggiore di zero il risultato per avere la ricorrenza della stringa nel testo.

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    p.es....

    Codice PHP:
    $testo '......'// testo in cui cercare
    $parole = array('...''...', ...); // parole da cercare
    $f 0; foreach ($parole as $parola) { if (strpos($testo$parola)!==false$f++ };
    // $f è uguale al numero di parole trovate, se devono essere tutte presenti basta
    // controllare l'espressione ($f==sizeof($parole)) 
    ...oops reply già inviato... vabbè... è una soluzione simile a quella già efficace di @stiffa

  5. #5
    ma cosi non ti ritorna true o false, semplicemente ti ritorna il numero che poi devi ricontrollare successivamente. qualcosa di simile dovrebbe tornarti true o false sia che il numero di parole da cercare sia 1 che 100.
    Codice PHP:
    function findString($text,$search)
    {
      
    $res 0
      
    $pieces explode(" "$search); 
      foreach (
    $pieces as $piece)
        if(
    strpos(strtoupper($text), strtoupper($piece)) === true)  
          
    $res++;
      return (
    $res==count($pieces)) ?  true false


  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Bada che se io cerco "due tori" mi dà esito positivo, poichè presente in trasportaTORI
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  7. #7
    giusto, confronta con " ".$piece." "

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Originariamente inviato da mayam2.11
    ma cosi non ti ritorna true o false,.....
    Nel mio esempio sì: ho specificato come nei commenti dello snippet

    Inoltre...
    confronta con " ".$piece." "
    purtroppo non va bene perchè esclude cose come "Sono stati i TORI, disse", etc.

    Per una soluzione più raffinata ci vogliono le regexp, a questo punto

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.