YouTube API:显示频道名称 - 错误消息

时间:2013-10-18 20:30:50

标签: php youtube-api youtube-javascript-api channel

我们正在使用YouTube API(使用PHP)编写网络应用程序。 我们已经设定了一个可以连接您的YouTube频道的网站。

在下一个网站上,我们要显示已连接频道的名称和上传内容。 为此,我们使用了以下代码:

  $htmlBody .= "<h3>Videos in list $uploadsListId by $channel['snippet']['title']</h3><ul>";
  foreach ($playlistItemsResponse['items'] as $playlistItem) {
    $htmlBody .= sprintf('<li>%s (%s)</li>', $playlistItem['snippet']['title'],
      $playlistItem['snippet']['resourceId']['videoId']);
  }
  $htmlBody .= '</ul>';

上传功能正常,但名称功能不起作用。 如果我们使用浏览器访问该站点,则会收到以下错误消息:

解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,在第53行的... / dashboard.php中期待T_STRING或T_VARIABLE或T_NUM_STRING

第53行是这段代码:

  $htmlBody .= "<h3>Videos in list $uploadsListId by $channel['snippet']['title']</h3><ul>";

我们已经设定的$ channel的定义。

错误是什么? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您正在尝试在双引号字符串中使用带引号键的数组值。

执行此操作的正确方法是将变量包装在花括号{ }中:

$htmlBody .= "<h3>Videos in list {$uploadsListId} by 
{$channel['snippet']['title']}</h3><ul>";

或者连接它们:

$htmlBody .= "<h3>Videos in list " . $uploadsListId . " by 
" . $channel['snippet']['title'] . "</h3><ul>";

或者,使用sprintf()(在我看来看起来更整洁):

$htmlBody .= sprintf('<h3>Videos in list %d by %s',
$uploadsListId, $channel['snippet']['title'] );