2013-10-18 37 views
0

我們正在使用YouTube API(使用PHP)編寫Web應用程序。 我們已經爲您設置了一個可以連接您的YouTube頻道的網站。YouTube API:顯示頻道名稱 - 錯誤訊息

在下一個網站上,我們想要顯示連接頻道的名稱和上傳內容。 爲此,我們用下面的代碼:

$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的定義。

什麼是錯誤? 感謝您的幫助。

回答

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

感謝您的快速回復!我更改了代碼,現在錯誤消息已消失。在網站上,我看到了上傳,但頻道名稱不存在。如果你能幫助我,那將是非常棒的。 teamviewer或我可以向你發送文件。 – user2896298