Codeigniter - 从youtube视频JSON响应中获取“thumbnail_url”

时间:2013-04-21 19:53:48

标签: php json codeigniter

我正在尝试通过其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函数是否正常工作,但显然没有。

再次感谢! :)

1 个答案:

答案 0 :(得分:2)

您正在使用以下行从json响应生成数组:

$result = json_decode($return, true);

see the docs)您应该看到“PHP通知:尝试获取非对象的属性”错误。

所以$result->thumbnail_url应该是$result['thumbnail_url'],或者你可以从true的参数中删除第二个json_decode()