2013-04-21 71 views
0

我试图通过其JSON响应保存来自YouTube视频的缩略图img URL。Codeigniter - 从YouTube视频获取“thumbnail_url”JSON响应

用户首先通过表单提交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; ?> 

我是新来的,一般笨和编码,我意识到我的结构可能不是最不合适。

到目前为止,当我渲染视图,这似乎是:

Severity: Notice 

Message: Undefined variable: video_thumb 

这究竟是为什么?你能建议我一个更好的方法来做到这一点?谢谢! 到目前为止,我只是打印出thumbnail_url来查看get_youtube函数是否正在工作,但显然不是。

再次感谢! :)

+0

你打电话给你的观点如何? – Shomz 2013-04-21 21:03:34

+0

更新了控制器,'链接'来自表单字段 – 2013-04-21 21:12:03

+0

仍然返回为未定义的变量 – 2013-04-21 21:39:10

回答

2

你是从使用该行的JSON响应的数组:

$result = json_decode($return, true); 

see the docs),你应该会看到一个“PHP的通知:试图让非对象的属性”错误太多地方。

所以$result->thumbnail_url$result['thumbnail_url']代替,或可以从json_decode()的参数,将工作太丢弃第二true