Ho difficoltà ad associare due stringhe di testo. Uno contiene alcuni caratteri nascosti da una stringa di testo.Come rimuovere i caratteri nascosti dalla stringa di testo in PHP?
Ho una stringa di testo: "PR & Communications" memorizzata su un database SQL. Quando viene estratto da lì, in $database_version
, var_dump($database_version)
rivela che la stringa contiene 19 byte.
Ho raschiato (con autorizzazione) da un sito Web, del testo in una variabile, $web_version
. Apparentemente la stringa è "PR & Communications" ma non corrisponde alla versione del database, cioè if($database_version == $web_version)
NON è vero.
var_dump()
rivela $web_version
per avere 23 byte. trim()
non ha effetto, né strip_tags()
ma preg_replace('/[^\PC\s]/u', $web_version)
rimuove qualcosa perché in seguito string_var($web_version)
rivela la stringa per comprendere solo 14 byte. Ha rimosso chiaramente qualcosa, forse troppo, poiché la stringa non corrisponde ancora allo $database_version
.
Delle idee come:
- scoprire cosa è stato rimosso
- striscia fuori quel tanto che basta per abbinare $ Database_Version?
PS Non so come visualizzare la variabile nel codice esadecimale
Wen il tuo tentativo di confrontare _if ($ database_version == $ web_version) _ entrambe le variabili stanno arrivando in formato stringa? Prova con alcuni metodi di tipizzazione e di rifinitura. – Drone
Puoi provare a usare 'utf8-decode ($ web_version)' - http://php.net/manual/en/function.utf8-decode.php. – Scott
debug: per vedere la stringa come byte esadecimali utilizzare 'var_dump ($ web_version, bin2hex ($ web_version), __FILE __.__ LINE __);'. Per vedere cosa rappresenta il personaggio, quindi: [Tabella e descrizione ASCII] (http://www.asciitable.com/) e [Elenco caratteri completo per UTF-8] (http://www.fileformat.info/info/charset /UTF-8/list.htm) –