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

标签 php youtube facebook-opengraph

这个问题在这里已经有了答案:





PHP parse/syntax errors; and how to solve them

(21 个回答)


6年前关闭。




我需要打印 YouTube OpenGraph key 的帮助,video:url , 使用 PHP OpenGraph图书馆。

在以下代码中,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 />";
    }
    */
?>

上面的代码重现了错误:

Parse error: syntax error, unexpected ':' in line 7



如何直接访问 video:url 的值和其他 YouTube Assets :使用 OpenGraph 对象?

最佳答案

虽然 YouTube 返回了 video:url属性,您无法使用 OpenGraph 作为 $graph->video:url 检索它但您可以使用 $graph->__get('video:url') 检索它.以下是查看the OpenGraph.php code的解释.

有效函数名称
$graph->video:url将无法工作,因为 PHP 不允许 :函数名中的字符。以下来自PHP Manual: User-defined functions :

A valid function name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.



__get() 魔术方法

在 YouTube 视频的 OpenGraph 对象中,->site_name->title属性由 __get() 提供返回与私有(private) ->_values 中的方法名称匹配的值的魔术方法关联数组。因为video:url关联数组键不符合有效的函数名,您不能直接访问它。另外,因为 ->_values数组是私有(private)的,您不能将其作为数组访问。然而,由于 __get()魔术方法是公开的,您可以像这样直接访问它:
$graph->__get('video:url')

链接:
  • PHP Manual: Magic Methods
  • PHP Manual: User-defined functions
  • OpenGraph.php source code
  • 关于php - 如何用冒号打印 YouTube OpenGraph 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971375/

    相关文章:

    java - 如何从媒体播放器创建音频文件

    ios - Youtube 网址验证 ios

    java - YouTubeThumbnailView 示例

    youtube - 为什么 youtube 主页 opengraph 图像的内容是错误的 url?

    php - 在带有自动加载器的错误处理程序中使用 MySQLi 扩展类

    php - 动态生成的 TCPDF HTML 页面中的自动分页

    php - Laravel 5 : the move() function doesn't save the uploaded image file

    php - PayPal IPN - 不能沙箱

    facebook - 无法遵循重定向路径

    facebook - 基于 Open Graph iframe 的视频嵌入支持?