gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:39:17 24 4
gpt4 key购买 nike

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





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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com