JSON_ERROR_SYNTAX: Probleme mit versteckten Zeichen aufdecken
Wenn beim Dekodieren von JSON mit json_decode() trotz der Sicherheit von Online-Formatierern der verwirrende Fehler JSON_ERROR_SYNTAX auftritt Damit das JSON gültig ist, ist es wichtig, nach versteckten Zeichen zu suchen.
Die json_decode()-Funktion von PHP ist streng und lehnt JSON mit allen Syntaxfehlern ab, einschließlich unsichtbarer Steuerzeichen oder ungültiger UTF-8-Kodierung. Um dieses Problem zu beheben, implementieren Sie den folgenden Code:
<code class="php">for ($i = 0; $i <= 31; ++$i) { $data = str_replace(chr($i), "", $data); } $data = str_replace(chr(127), "", $data);</code>
Diese Schleife eliminiert Steuerzeichen (ASCII-Codes 0-31 und 127). Überprüfen Sie außerdem, ob das „Byte Order Mark“ (0xEF 0xBB 0xBF) dem JSON vorangestellt ist, und verwerfen Sie es:
<code class="php">if (0 === strpos(bin2hex($data), 'efbbbf')) { $data = substr($data, 3); }</code>
Nachdem Sie die JSON-Daten bereinigt haben, dekodieren Sie sie mit json_decode(). Dieser umfassende Ansatz behebt viele Instanzen des JSON_ERROR_SYNTAX-Fehlers und sorgt so für ein aussagekräftigeres Dekodiererlebnis.
Das obige ist der detaillierte Inhalt vonWie behebt man JSON_ERROR_SYNTAX beim Dekodieren versteckter Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!