我正在尝试通过其JSON响应从YouTube视频中保存缩略图img网址。
用户首先通过表单提交youtube链接。
控制器:
$data['video_thumb'] = $this->gallery_model->get_youtube('link');
$this->load->view('templates/header');
$this->load->view('media/index', $data);
$this->load->view('templates/footer');
型号:
function get_youtube($url){
$youtube = "http://www.youtube.com/oembed?url=". $url ."&format=json";
$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
$result = json_decode($return, true);
$video_thumb = $result->thumbnail_url;
$video_thumb = str_replace('"\"','',$video_thumb);
return $video_thumb;
}
查看:
<?php echo $video_thumb; ?>
我对codeigniter和编码很新,我意识到我的结构可能不是最合适的。
到目前为止,当我渲染视图时,会出现:
Severity: Notice
Message: Undefined variable: video_thumb
为什么会这样?你能建议我更好的方法吗?谢谢! 到目前为止,我只是打印出thumbnail_url以查看get_youtube函数是否正常工作,但显然没有。
再次感谢! :)答案 0 :(得分:2)
您正在使用以下行从json响应生成数组:
$result = json_decode($return, true);
(see the docs)您应该看到“PHP通知:尝试获取非对象的属性”错误。
所以$result->thumbnail_url
应该是$result['thumbnail_url']
,或者你可以从true
的参数中删除第二个json_decode()
。