I send a GET request to a server using curl and get back json data. When I print this data in the browser I can see the proper json structure without slashes(magic quotes turned off)-no problem at all.
Even when I copy paste this json data from the browser to another php file in a variable and then try to decode it it works fine. The data is decoded in that file.
However after getting the data from the cURL request when I try to decode the data it fails. All it returns is: Array
Here is what I'm trying:
$resp = curl_exec($curl);
$d=json_decode($resp,true);
I don't know why this weird behaviour?? I have tried almost everything mentioned in this thread json_decode returns NULL after webservice call
I've also detected the encoding of the string returned by cURL call using mb_detect_encoding and it is UTF-8
This thing is driving me crazy...
Update: OK.....it seems json_decode has infact decoded the data and returned in $d variable but I'm not able to access the element from the array. I used print_r to see the structure of the array. It is somewhat lik this:
Array (
[response] => Array (
[start] => 0
[docs] => Array (
[0] => Array (
[id] => S132250037010452
[slno] => 452
)
)
[numFound] => 1
)
)
When I try to access the element id using:
echo $d[response][docs][0][id];
I get a notice stating: Use of undefined constant response - assumed 'response' on that line. What does this mean??