开发者

Error retrieving json with php

开发者 https://www.devze.com 2023-04-10 12:54 出处:网络
I\'ve some problem retrieving json information with a PHP. I\'ve created a s开发者_如何学编程imple php page that returns a json:

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

I've created a s开发者_如何学编程imple 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?


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.


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 "?"


I am pretty sure your page that does the json_encode has a stray ?. Look in there for a missing > in terms of ?> and such.


Look through your PHP for a stray "?".

0

精彩评论

暂无评论...
验证码 换一张
取 消