Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengendalikan Data JSON Buruk dengan Berkesan dengan `json_decode()` PHP?
Mengendalikan Data JSON Buruk dengan json_decode() dalam PHP
Apabila berurusan dengan data JSON menggunakan json_decode(), adalah penting untuk mengendalikan data tidak sah dengan berkesan. Walaupun skrip yang disediakan boleh mengesan JSON buruk untuk rentetan seperti { bar: "baz" }, ia gagal mengendalikan data bukan rentetan seperti "data tidak sah."
Memahami json_decode()
Untuk menangani isu ini, adalah penting untuk memahami json_decode():
Mencegah Amaran dengan @ Operator
Untuk menyekat amaran, satu pilihan ialah menggunakan operator @:
$data = @json_decode($_POST);
Pendekatan ini menyenyapkan amaran, tetapi memerlukan semakan tambahan untuk mengendalikan ralat dan nilai nol:
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "Incorrect data"; }
Pengendalian Ralat Tersuai
Pilihan lain ialah membuat pengendalian ralat tersuai skrip:
function handle_json_error() { $error = json_last_error(); switch ($error) { case JSON_ERROR_NONE: return true; case JSON_ERROR_DEPTH: echo "Maximum depth exceeded"; break; case JSON_ERROR_STATE_MISMATCH: echo "Invalid or malformed JSON"; break; case JSON_ERROR_CTRL_CHAR: echo "Control character error"; break; case JSON_ERROR_SYNTAX: echo "Syntax error"; break; case JSON_ERROR_UTF8: echo "Malformed UTF-8 characters"; break; default: echo "Unknown error"; } return false; } if (!handle_json_error()) { echo "Bad JSON data!"; }
Skrip ini menyediakan mesej ralat terperinci dan mengendalikan pelbagai ralat penghuraian JSON.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Data JSON Buruk dengan Berkesan dengan `json_decode()` PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!