Visualizzazione dei risultati da 1 a 9 su 9

Discussione: controllare stringa

  1. #1

    controllare stringa

    ciao a tutti

    ho necessità di controllare all'interno della stringa se è presente una determinata parola,
    faccio un esempio:

    $stringa = "AG,AL,AN,AO";


    Effettuo il controlllo:

    Se è presente "AN" scrivo : Ok, altrimenti non faccio nulla..

    Purtroppo non ho idea su come effettuare il controllo di una singola parola all'interno della stringa.. qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    324
    Codice PHP:

     
    if (strpos($stringa,"AN"))  {  

    echo 
    "Ok"


    Ho la sindrome di Peter Pan, le manie di persecuzione...se sapessi suonare uno strumento sicuramente avrei anche un complesso.

  3. #3
    Originariamente inviato da paparino72
    Codice PHP:
     if (strpos($stringa,"AN"))  {  

               echo 
    "Ok"


    La funzione strpos() può restituire 0 sia come indice della posizione del primo carattere dell'occorrenza trovata, sia come corrispondente booleano (false).
    Il tuo controllo non funziona correttamente, perchè la condizione risulta falsa anche se l'indice della prima lettera della sottostringa trovata è 0.
    Per questo è necessario un confronto di tipo, oltre che di valore, che può essere fatto attraverso l'operatore di confronto === (!== per negare la condizione):
    Codice PHP:
    if ( strpos ($stringa'AN') === TRUE )
            echo 
    'ok'
    Considerando che $stringa mi sembra una concatenazione di stringhe divise dal simbolo ",", potresti anche portare queste ultime in un array usando la virgola come divisore (explode()) per effettuare su quello il controllo della presenza dell'elemento da ricercare (in_array()).

    Codice PHP:
    $sottostringhe explode(',',$stringa);
    if (
    in_array("AN"$sottostringhe))
          echo 
    'ok'
    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    324


    ...e così invece?

    Codice PHP:

    if (!strpos($stringa,'AN'))  {  }  else {

    echo 
    "Ok";


    (a 'sto punto imparo pure io )
    Ho la sindrome di Peter Pan, le manie di persecuzione...se sapessi suonare uno strumento sicuramente avrei anche un complesso.

  5. #5


    Quello di prima?

    Non cambia nulla, c'è solo un blocco vuoto inutile in più.
    Il "problema" è nel valore restituito da strpos() e nella conseguente valutazione della condizione, non nella forma in cui viene scritto l'if.

    Ciao!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    324
    ....ok, grazie per la lezione!

    ....stranamente però a me ha sempre funzionato....
    Ho la sindrome di Peter Pan, le manie di persecuzione...se sapessi suonare uno strumento sicuramente avrei anche un complesso.

  7. #7
    Prova a verificare cercando il primo carattere... il risultato sarà false anche se questo è contenuto nella stringa
    Ciao!

    P.S: Sopra ho sbagliato,
    Codice PHP:
     strpos ($stringa'AN') === TRUE 
    dovrebbe essere
    Codice PHP:
     strpos ($stringa'AN') !== FALSE 
    perchè la funzione restituisce false se non trova occorrenze della sottostringa, ma in caso contrario restituisce la posizione, non true :rollo:

  8. #8
    grazie ragazzi ad entrambe

  9. #9
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    codice:
    <?php
      
     $stringa = "AG,AL,AO";
     $array = explode( ",",$stringa);
     $ricerca = 'AN';
      if (in_array($ricerca, $array)) 
      {
         echo " ok";
    }
    else
      {
         echo " nessuna corrispondenza trovata";
    }
    
    
    
    
    
    
     
    ?>

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.