Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627

    Ciclo if/while con controllo.

    Ciao, volevo chiedervi un consiglio:

    ho una variabile che contiene una stringa, vorrei effettuare un controllo sulla stringa e verificare se al suo interno contiene una determinata parola, e se non la contiene passare al controllo successivo e verificare se ne contiene un'altra:

    Es

    $stringa = terreno montagnoso della persia blu;

    if (controllo stringa contiene la parola marmo)
    ...........
    elseif (stringa contiene la parola rosa)
    ...........
    elseif (stringa contiene la parola cucina)
    .......
    else (stringa contiene la parola blu)



    come posso eseguire il controllo ?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Potresti usare la funzione strpos()

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    ci avevo già provato, ma mi esegue l'operazione in senso contrario in quanto mi controlla che il risultato sia false

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi fare così
    Codice PHP:
    $stringa "terreno montagnoso della persia blu";

    //supponiamo che vuoi verificare se ci sono le parole marmo, oppure blu

    if ( strpos($stringa"marmo") !== FALSE )
    {
        echo 
    "Ho trovato 'marmo'";
    }
    else if ( 
    strpos($stringa"blu") !== FALSE )
    {
        echo 
    "Ho trovato 'blu'";

    E' fondamentale usare l'operatore !== e non != perché la funzione potrebbe ritornare 0 se la parola è all'inizio della stringa, e quindi confondersi tra FALSE e 0.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    perfetto e se dovessi cercare due parole estte? esempio

    if ( strpos($stringa, "marmo duro") !== FALSE )

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Si, se sono in sequenza funzionerà.

    Però se in un if precedente cerchi solo "marmo" ti dirà che l'ha trovato anche se ci fosse scritto "marmo qualsiasialtracosa".
    Quindi nella ricerca parti dalle cose più specifiche (marmo duro) e poi va a quelle più generali (marmo).

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.