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



我们正在用YouTube API(PHP)编写一个Web应用程序。我们已经编写了一个网站,您可以在其中连接您的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、期望在 .../dashboard.php第 53 行中出现T_STRING或T_VARIABLE或T_NUM_STRING

第 53 行是以下代码:

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

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

有什么错误?感谢您的帮助。

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

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

$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'] );

相关内容

最新更新