Ich habe ein Problem beim Vergleich von 2 identischen Zeichenfolgen. Die erste Zeichenfolge wird aus einer Datenbank abgerufen und die andere fest codiert.php - 2 identische Zeichenfolge mit unterschiedlichen Längen
Die Zeichenfolge ist { "name":"John", "age":30, "car":null }
.
Ich habe diesen Code zum ersten Mal ausgeführt und die Datenbank-Zeichenfolge hat eine Länge von 79 Zeichen und die hart codierte Zeichenfolge hat eine Länge von 39 Zeichen.
echo '<pre>';var_dump($json_data);echo '</pre>';
echo '<pre>';var_dump('{ "name":"John", "age":30, "car":null }');echo '</pre>';
Nach einigem Suchen vorgeschlagen wurde bin2hex()
und mit zu verwenden, dass ich es verengt haben "
Zeichen nach unten.
Ersetzen des Datenbankwert mit einem "
und Ausführen des folgenden Codeausganges
2671756f743b
für den Datenbankwert und 22
für den harten codierten Wert.
echo bin2hex($json_data)."<br>";
echo bin2hex('"')."<br>";
Was ist der richtige Weg, um beide Werte zu erhalten mit strcmp()
zu vergleichen, wie auf der Grundlage des Vergleichs i anderer Code tun werden.
Was ist var '$ json_data'? Gibt es eine Zeichenfolge oder ein JSON-Objekt? – panther
Es ist nicht klar, was Sie mit der bin2hex-Funktion machen wollen. Außerdem zeigen Sie nicht den Code an, der die Abfrage ausführt, und wie Daten gespeichert werden. – Warrior
'2671756f743b' ist' " ', die HTML-Entität für ein Anführungszeichen; [html_entity_decode()] (http://php.net/manual/en/function.html-entity-decode.php) konvertiert es in ein tatsächliches Anführungszeichen –