Dean Or
Dean Or

Reputation: 2911

json_decode returns NULL, json_last_error_msg gives "Control character error, possibly incorrectly encoded"

The file looks fine when read into my editor.

$file = file_get_contents('path/to/file.json');
$json =  json_decode($file, true);
var_dump($json); // null
echo json_last_error_msg(); //Control character error, possibly incorrectly encoded

There isn't much out there on what this error message means.

Upvotes: 19

Views: 21676

Answers (1)

jk2K
jk2K

Reputation: 4527

you can remove the control character, PCRE supports the POSIX notation for character classes [:cntrl:]

$json = preg_replace('/[[:cntrl:]]/', '', $json);
$json = json_decode($json, true);
var_dump($json);
echo json_last_error_msg();

Upvotes: 37

Related Questions