Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    confronto stringhe .. tipo 'like'

    Ciao,
    io dovrei confrontare 2 stringhe contenute in 2 variabili ..
    (con una 'if' per capirci -> if($a == $b)
    solo che avrei bisogno di fare un confronto tipo il 'like' di sql (like '%.....%' ), dato che il contenuto della variabile 'a' è dentro alla variabile 'b' ma ha ulteriori caratteri in testa e in coda (per un numero non definito)
    C'è qualche modo per fare stò confronto ?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    strpos potrebbe essere utile

  3. #3
    Codice PHP:
    if (stripos ('_'.$b$a) > 0) { print 'trovata !'; } 

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Grazie mille ..
    penso proprio che così si possa risolvere !

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da luca777
    Codice PHP:
    if (stripos ('_'.$b$a) > 0) { print 'trovata !'; } 
    questo esempio è errato, in quanto strpos può restituire 0 nel momento in cui la stringa da cercare è all' inizio del testo (strpos restiouisce infatti la posizione della prima occorrenza del testo cercato).

    come consigliato dalla documentazione è meglio utilizzare ===, che oltre al valore controlla anche il tipo (casting)

    Codice PHP:
    if (stripos ('_'.$b$a) !== false) { print 'trovata !'; } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    perdonami ma il tuo contro-esempio sarebbe corretto se togliessi quel
    '_'.
    che ho anteposto alla stringa che può contenere l'altra da cercare.
    L'ho aggiunta proprio per il problema dello zero, nel mio esempio se la stringa $b inizia come la stringa $a che viene cercata, la funzione trova $a alla posizione 1, che è diversa appunto dallo 0

    quindi O il mio esempio con '_'.$b
    Oppure il tuo con !== ma senza quel prefisso

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    giusto non avevo fatto caso al _

    quindi
    Codice PHP:
    if (stripos ($b$a) !== false) { print 'trovata !'; } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    ottimo
    meglio fare sempre esempi funzionanti

    e magari non tacciare quegli degli altri di essere "errati" quando invece funzionano benissimo, ma solo per il fatto che non sono "perfetti" secondo la logica del manuale di php.net, non vuol poi dire che non vadan bene

    [ok, un po' polemico, I know, ma se un esempio funziona mi scoccia un po' che venga scritto che è sbagliato]

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da luca777
    ottimo
    meglio fare sempre esempi funzionanti

    e magari non tacciare quegli degli altri di essere "errati" quando invece funzionano benissimo, ma solo per il fatto che non sono "perfetti" secondo la logica del manuale di php.net, non vuol poi dire che non vadan bene

    [ok, un po' polemico, I know, ma se un esempio funziona mi scoccia un po' che venga scritto che è sbagliato]
    non è un discorso di perfezione, nulla è perfetto se fatto da essere imperfetti!

    è solo il modo 'inusuale' dell' anteporre un carattere nella stringa solo per evitare lo 0 che mi ha tradito

    io personalmente preferisco lasciare le variabili inalterate nei controlli, per un semplice discorso di abitudine e linearità.
    Se tra i caratteri che un giorno lui vorrà creare ci sarà un _ , dovrà ricordarsi che in quel controllo il risultato sarà 0, e questa è una cosa che io tendo sempre ad evitare per sentirmi libero di riutilizzare ciò che faccio.

    Ma è un puro e mero discorso di stile di programmazione.
    Finchè non cerca un _ il risultato non cambia
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    risposta ineccepibile, soprattutto condivido il "questione di abitudine"

    ma per non divagare troppo dal topic in questione
    Finchè non cerca un _ il risultato non cambia
    è la precisazione più importante, si, il mio esempio salterebbe per aria se la stringa da cercare, quindi $a nella richiesta iniziale, iniziasse col carattere _

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.