Hàm json_last_error – Trả về lỗi cuối cùng xảy ra khi sử dụng json_encode() hay sử dụng json_decode().
json_last_error ( void ) : int
– Trả về lỗi cuối cùng (nếu có) xảy ra trong quá trình mã hóa / giải mã JSON cuối cùng, không chỉ định JSON_THlaw_ON_ERROR.
– Trả về một số nguyên, giá trị có thể là một trong các hằng số sau:
<?php // Một chuỗi json hợp lệ. $json[] = '{"Organization": "PHP Documentation Team"}'; // Chuỗi json không hợp lệ sẽ gây ra cú pháp // lỗi, trong trường hợp này chúng tôi đã sử dụng 'instead of' để báo lỗi $json[] = "{'Organization': 'PHP Documentation Team'}"; foreach ($json as $string) { echo 'Decoding: ' . $string; json_decode($string); switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - No errors'; break; case JSON_ERROR_DEPTH: echo ' - Maximum stack depth exceeded'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Underflow or the modes mismatch'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Unexpected control character found'; break; case JSON_ERROR_SYNTAX: echo ' - Syntax error, malformed JSON'; break; case JSON_ERROR_UTF8: echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; break; default: echo ' - Unknown error'; break; } echo PHP_EOL; } ?>
Decoding: {"Organization": "PHP Documentation Team"} - No errors Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON
code:
<?php // Một chuỗi UTF-8 không hợp lệ. $text = "\xB1\x31"; $json = json_encode($text); $error = json_last_error(); var_dump($json, $error === JSON_ERROR_UTF8); ?>
Kết quả:
string(4) "null" bool(true)
code:
<?php // Chuỗi UTF8 không hợp lệ gây ra JSON_ERROR_UTF8 json_encode("\xB1\x31"); // Những điều sau đây không gây ra lỗi JSON json_encode('okay', JSON_THROW_ON_ERROR); // Trạng thái lỗi global không bị thay đổi bởi json_encode () trước đây var_dump(json_last_error() === JSON_ERROR_UTF8); ?>
Kết quả:
bool(true)
0 = JSON_ERROR_NONE 1 = JSON_ERROR_DEPTH 2 = JSON_ERROR_STATE_MISMATCH 3 = JSON_ERROR_CTRL_CHAR 4 = JSON_ERROR_SYNTAX 5 = JSON_ERROR_UTF8
Đây là một ý của tôi để có thể nói cho các lập trình viên hiểu tại sao các tệp JSON cụ thể không được giải mã. Vui lòng không mã hóa những con số này thành thói quen xử lý lỗi.
<?php function utf8ize($d) { if (is_array($d)) { foreach ($d as $k => $v) { $d[$k] = utf8ize($v); } } else if (is_string ($d)) { return utf8_encode($d); } return $d; } ?>
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm json_last_error() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn các bạn đã ghé thăm codetutam.com
Bình luận: