如何获取json_last_error的各种值

时间:2016-04-18 18:49:10

标签: php json

我正在针对受Fastest way to check if a string is JSON in PHP?

启发的功能编写单元测试

例如,我尝试将控制字符添加到JSON字符串中,以使json_last_error等于JSON_ERROR_CTRL_CHAR,但它不起作用。它"做"在JSON中给出错误,但它似乎总是JSON_ERROR_SYNTAX。我做过一些研究,但不确定如何以某种方式使其失败。

我如何更改下面的JSON字符串,以使json_last_error评估为JSON_ERROR_SYNTAXJSON_ERROR_NONE以外的其他字符串?

$json = '[{user_id":"\x0230", "username":"stack"},{"user_id":14,"username":"over"}]';
$json = '[{"user_id":"\t\\r\\n", "username":"stack"},{"user_id":14,"username":"over"}]';

提前谢谢,亚当

1 个答案:

答案 0 :(得分:1)

我能够得到JSON_ERROR_CTRL_CHAR这样的话:

$json = chr(0).'[{"user_id":"13", "username":"stack"},{"user_id":14,"username":"over"}]';

仅供参考,无论chr(0)在字符串中的哪个位置,它似乎都会出现相同的错误,它至少适用于chr(0) - chr(31),除了9,10和13。