Я пытаюсь отправить изображение на Cheezburger.com с помощью PHP-скрипта и вернуть URL-адрес пользователю. json_decode($var, true)
часть отлично работает, я получаю ссылки, ID и т. Д. json_decode($var, true)
в формате JSON, но когда я запускаю json_decode($var, true)
он возвращает мне только исходный JSON. Вот строка, которая была загружена в скрипт:
{ "items": [ { "id": 6980805120, "link": "https://api.cheezburger.com/v1/assets/6980805120", "created_time": 1358451002, "updated_time": 1358451002, "media": [ { "name": "maxW580", "url": "https://i.chzbgr.com/maxW580/6980805120/h89D91707/", "height": 500, "width": 500, "is_animated": false }, { "name": "maxW320", "url": "https://i.chzbgr.com/maxW320/6980805120/h89D91707/", "height": 320, "width": 320, "is_animated": false }, { "name": "square50", "url": "https://i.chzbgr.com/square50/6980805120/h89D91707/", "height": 50, "width": 50, "is_animated": false } ], "title": "JSA, UR WEBSIET IZ AWSUM. URE HIRD!", "description": "JSA, UR WEBSIET IZ AWSUM. URE HIRD! -- This image was created by jsa005 from JSiVi using the JSiVi Meme Generator. Try it out at http://jsivi.uni.me!", "asset_type_id": 0, "share_url": "http://chzb.gr/10Cg1PS" } ] }
Когда я запускаю json_decode($jsonstring, true)
на этом, $jsonstring
является переменной, возвращаемой cURL, содержащей строку выше, я возвращаю только строку, в которую я подал. Я запутался.
$fields = array( 'access_token' => $this->getToken(), 'title' => $title, 'description' => $description, 'content' => $base64data, 'anonymous' => 'true'); $url = 'https://api.cheezburger.com/v1/assets'; $fields_string = http_build_query($fields); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); //close connection curl_close($ch); $jsonstring = json_decode($result, TRUE);
задавать
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
перед запуском curl_exec($ch);
Без него ответ печатается непосредственно в вашем браузере, поэтому вы видите «сырые» JSON, а $response
– логическое значение ( TRUE
или FALSE
). Подробнее см. На странице руководства.