Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error retrieving json with php

Tags:

json

php

I've some problem retrieving json information with a PHP.

I've created a simple php page that returns a json:

$data = array(
    'title' => 'Simple title'
);
print json_encode($data);

And in another page I try to get that array as an object:

$content = file_get_contents($url);
$json_output = json_decode($content, true); 

switch(json_last_error())
{
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
        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_NONE:
        echo ' - No errors';
        break;
}

The problem is that there is an error with this approach: I receive a "JSON_ERROR_SYNTAX" because after "file_get_contents" function I have an unknown character at the beginning of the string.

If I copy/paste it on Notepad++ I didn't see:

{"title":"Simple title"}

but I see:

?{"title":"Simple title"}

Could someone help me?


2 Answers

Make sure both your scripts have same encoding - and if it's UTF make sure they are without Byte Order Mark (BOM) at very begin of file.

like image 182
Vladimir Fesko Avatar answered Jul 22 '26 19:07

Vladimir Fesko


What about

$content = trim(file_get_contents($url));

?

Also, it sounds as if there was a problem with the encoding within the PHP that echos your JSON. Try setting proper (as in: content-type) headers and make sure that both files are UTF-8 encoded.


Also: What happens if you open $url in your browser? Do you see an "?"

like image 28
vzwick Avatar answered Jul 22 '26 19:07

vzwick



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!