Это URL-адрес, из которого я пытаюсь получить контент:
$url = 'http://mgcash.com/api/?a=get_offers&key=13658244dad4cfb3&country=US&ua=Mozilla/5.0%20%28Macintosh;%20Intel%20Mac%20OS%20X%2010.10;%20rv:35.0%29%20Gecko/20100101%20Firefox/35.0&format=json';
Итак, я попробовал file_get_contents()
, и он работает нормально. Затем я попробовал эту функцию, которая всегда работала, но не в этом случае.
class SimpleCurl
{
public static function get($url, $params=array())
{
$url = $url . '?' . http_build_query($params, '', '&');
$ch = curl_init();
$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => false
];
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
Затем я попытался использовать терминал со следующей командой:
curl -X GET "http://mgcash.com/api/?a=get_offers&key=13658244dad4cfb3&country=US&ua=Mozilla/5.0%20%28Macintosh;%20Intel%20Mac%20OS%20X%2010.10;%20rv:35.0%29%20Gecko/20100101%20Firefox/35.0&format=json"
И это сработало. Он без проблем вернул правильный объект JSON. Может кто-нибудь, пожалуйста, дайте мне знать, как вы отлаживаете CURL и выясняете, в чем здесь проблема?
После дальнейших тестов и отладки я заметил следующее. Поскольку моему проекту требуется объект JSON, я передаю полученный CURL $content
через $json_data = json_decode($content);
, и он ничего не возвращает. Пустой!
Но если я попытаюсь выполнить echo
или print_r
до того, как он пройдет через json_decode()
, я буквально получу некоторую RAW-информацию/текст, а не объект JSON. Что за...
?
к$url
внутри функции? 23.02.2015