如何使用冒号打印YouTube OpenGraph属性?

时间:2015-06-22 02:28:40

标签: php youtube opengraph

我需要帮助使用PHP OpenGraph库打印YouTube OpenGraph密钥video:url

在以下代码中,foreach循环有效,$graph->site_name也有效,但$graph->video:url没有。

<?php
    require_once('OpenGraph.php');

    $graph = OpenGraph::fetch('https://www.youtube.com/watch?v=b6hoBp7Hk-A');
    print $graph->site_name;
    print $graph->title;
    print $graph->video:url;
    /*
    foreach ($graph as $key => $value) {
        print "$key => {$value}<br />";
    }
    */
?>

上面的代码重现了错误:

  

解析错误:语法错误,第7行意外':'

如何使用OpenGraph对象直接访问video:url:的其他YouTube媒体资源的值?

1 个答案:

答案 0 :(得分:0)

虽然YouTube返回a = "SLSQ" b = "SQLSSQLSQ" B = zip(b, xrange(0,len(b))) from itertools import combinations res = [] for i in combinations(B, 4): bstr = "".join(map(lambda x:x[0], i)) if a.__contains__(bstr): res.append(map(lambda x:x[1], i)) for i in res: print i 属性,但您无法使用OpenGraph作为video:url检索它,但您可以使用$graph->video:url检索它。下面的解释检查the OpenGraph.php code

有效功能名称

$graph->__get('video:url')将无效,因为PHP不允许函数名中包含$graph->video:url个字符。以下内容来自PHP Manual: User-defined functions

  

有效的函数名称以字母或下划线开头,后跟任意数量的字母,数字或下划线。作为正则表达式,它将表示为:[a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *。

__ get()魔法

在YouTube视频的OpenGraph对象中,:->site_name属性由__get()魔术方法提供,该方法返回与私有{{1}中的方法名称匹配的值关联数组。由于->title关联数组键不符合有效的函数名,因此无法直接访问它。此外,由于->_values数组是私有的,因此您无法将其作为数组进行访问。但是,由于video:url魔术方法是公开的,因此您可以直接访问它:

->_values

链接: