Удалите &callback=json
из вашего URL. Это делает запрос на JSONP (ироническая ссылка на википедию). Он оборачивает ответ функцией обратного вызова JavaScript, поэтому вместо PHP, который вам нужен в PHP, вы получаете
/**/json(THE JSON HERE)
Вы можете увидеть его в источнике страницы, даже если он отображается в виде JSON на странице. Эти дополнительные символы делают json_decode
неудачным. Этот параметр больше предназначен для междоменных запросов от JS.
Похоже, вы уже правильно обращаетесь к полученному массиву с помощью
echo $data['query']['search'][0]['title'];
Вы можете подумать, что это даст вам какое-то предупреждение или уведомление, когда вы попытаетесь получить доступ к этим ключам массива, когда $data
равно нулю, но не будет .