Ich habe Schwierigkeiten, zwei Textzeichenfolgen übereinzustimmen. Einer enthält einige versteckte Zeichen aus einer Textzeichenfolge.Wie versteckte Zeichen aus Textzeichenfolge in PHP entfernen?
Ich habe eine Textzeichenfolge: "PR & Communications" in einer SQL-Datenbank gespeichert. Wenn sie von dort in $database_version
gezogen wird, enthüllt var_dump($database_version)
die Zeichenfolge, 19 Byte zu haben.
Ich habe (mit Erlaubnis) von einer Website geschabt, etwas Text in eine Variable, $web_version
. Anscheinend ist die Zeichenfolge "PR & Communications", aber sie stimmt nicht mit der Datenbankversion überein, d. H. if($database_version == $web_version)
ist NICHT wahr.
var_dump()
zeigt $web_version
zu 23 Bytes haben. trim()
hat keinen Effekt, noch strip_tags()
, aber preg_replace('/[^\PC\s]/u', $web_version)
entfernt etwas, weil hinterher string_var($web_version)
enthüllt, dass die Zeichenfolge nur 14 Bytes umfasst. Es hat eindeutig etwas entfernt, möglicherweise zu viel, da die Zeichenfolge immer noch nicht mit $database_version
übereinstimmt. zu
Irgendwelche Ideen, wie:
- herauszufinden, was
- Streifen aus gerade genug entfernt wurde $ Database_Version zu passen?
PS Ich weiß nicht, wie die Variable in Hexadezimal-Code anzuzeigen
Wenn Sie versuchen, _if ($ database_version == $ web_version) zu vergleichen _ sind beide Variablen im String-Format? Versuchen Sie es mit etwas Typumwandlung und Trimmen. – Drone
Sie können versuchen mit 'utf8-decode ($ web_version)' - http://php.net/manual/en/function.utf8-decode.php. – Scott
Debugging: Um den String als Hex-Bytes zu sehen, verwenden Sie 'var_dump ($ web_version, bin2hex ($ web_version), __FILE __.__ LINE __);'. Um zu sehen, was das Zeichen darstellt, dann: [ASCII Tabelle und Beschreibung] (http://www.asciitable.com/) und [Vollständige Zeichenliste für UTF-8] (http://www.fileformat.info/info/charset /UTF-8/list.htm) –