Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    due stringhe uguali che non matchano

    ciao a tutti! devo paragonare due stringhe una presa da un db e una da un file.
    debuggando ho visto che stringhe identiche messe in un if($str1==$str2) restituivano sempre falso.
    trasformando le stringhe in esadecimale ho visto che eran diverse, quella che veniva dal file aveva dei caratteri che non resituivano nulla di visibile (provando con un convertitore online) e i valori esadecimali erano alternati da zeri.
    Ho provato a creare una sorta di filtro ma ogni volta che provo un nuovo file c'è un carattere che non avevo considerato. mi chiedevo allora se c'era una sorta di filtro. perchè quando lo mostro come stringa e non come esadecimale è perfetto, se io facessi copia incolla di quella stringa, seppur l'esadecimale sia sbagliato e, la incollassi nel php l'if ritornerebbe true.
    come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    potrei aver rislto così:
    $str=preg_replace('/[^a-zA-Z0-9 àèéìòù.]/','',$str);
    non so se è molto elegante, ma se cìè di meglio ditemi pure

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il carattere che non avevi considerato e invisibile che viene dal file potrebbe essere il ritorno a capo \n se in formato Unix o \r\n se è in formato Windows.

    Prima di fare il confronto, prova a fare
    $str2 = str_replace('\n', '', $str2);
    dove $str2 è la stringa che viene dal file, poi fai il confronto, se non va, prova a sostiruire \n con \r\n e riprova.

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.