Visualizzazione risultati 1 fino 11 di 11

Discussione: verifica su stringa che contiene parola di un'altra stringa

  1. #1
    Guest

    Predefinito

    come faccio a verificare se una stringa contiene una parola inserita in una seconda variabile?

    se io faccio:
    if ($testo == $parola) {
    mi verifica solo l'uguaglianza perfetta.

    se io uso una sintassi tipo quella che uso per le verifiche sui campi delle tabelle:
    if ("".$testo." == '%".$parola."%'") {
    mi da sempre vera la condizione anche quando sicuramente non lo è.

    c'è un modo per le stringhe? so fare questo tipo di verifica con i campi delle tabelle, ma su due semplici stringhe non ci riesco ... why? c'è una sintassi diversa?

    grazie
    Richi

  2. #2
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Puoi usare: strstr($testo,$parola_da_verificare)

    Questa funzione restituisce la stringa dalla parola compresa in poi (che viene trattata come TRUE da un if) o FALSE se non trova niente,

    Quindi ti basta fare if (strstr($testo,$parola)) ...
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  3. #3
    Guest

    Predefinito

    ok funziona !! grazie mille della dritta !!
    Richi

  4. #4
    Guest

    Predefinito

    Ti do pure un'altra dritta, strstr è case sensitive, ti conviene usare stristr nella stessa modalità insomma inserisci solo una i nel nome della funzione

  5. #5
    Guest

    Predefinito

    strstr o stristr funzionano però mi sono accorto che la condizione risulta vera anche per porzioni di parole ... per cui la if è verificata anche quando trova "zio" in una frase tipo "questa è una funzione php" mentre io vorrei che venisse verificata solo se trova la parola "zio" ad esempio in "lo zio va a casa". Secondo voi come posso fare?

  6. #6
    Guest

    Predefinito

    Potresti cercare, anzichè la stringa "zio", la stringa " zio " (<- nota gli spazi) :o

  7. #7
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    x questo genere di applicazioni l'ideale è sfruttare quel "poco" di espressioni regolari che il perl ha tramandato al php...

    tutto spiegato in questa ottima guida:

    http://www.myphp.it/site/articoli,print,3,1.html
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  8. #8
    Guest

    Predefinito

    Conosco poco le espressioni regolari. Ritieni che anche in un caso semplice del genere possano giovare? A titolo di esempio, quale sarebbe la stringa di ricerca da scrivere nel nostro caso per usare ereg()

  9. #9
    Guest

    Predefinito

    per quanto dice bodo ... uummm potrebbe andare magari cercando due alternative: "zio " oppure " zio" invece che " zio " in modo che, se la parola è all'inizio o alla fine della frase, la trova comunque (mentre con il doppio spazio non la troverebbe).

    per le espressioni regolari ... adesso vado a vedermi la guida consigliata dal buon Evcz

    Alohaaa
    Richi

  10. #10
    Guest

    Predefinito

    prova così:
    [code:1:efe5fc6906]$esito = preg_match ("/(\b$parola_da_cercare\b)/i",$testo);[/code:1:efe5fc6906]

  11. #11
    Guest

    Predefinito

    ok thanks

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •