0

我正在尝试通过其 JSON 响应从 youtube 视频中保存缩略图 img URL。

用户首先通过表单提交 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 功能是否有效,但显然不是。

再次感谢!:)

4

1 回答 1

2

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

$result = json_decode($return, true);

请参阅文档)您应该在某处也看到“PHP 通知:尝试获取非对象的属性”错误。

所以$result->thumbnail_url应该改为,或者你可以从也可以工作的参数中$result['thumbnail_url']删除第二个。truejson_decode()

于 2013-04-21T20:58:41.947 回答