此问题不是重复的。我的问题没有显示错误的数据部分,因为它在标记的文章中,但作为一个细心的用户反映,“您的问题中的具体问题是,您使用的URL只检索实际的视频,而不是包含视频。”无法从YouTube视频对象获取视频标题
我需要得到一个YouTube视频的标题为Magento的网上商店。我的代码是正确的,现在以下几点:
$videocode = $_helper->productAttribute($_product, $_data['value'], $_data['code']);
$url = "http://www.youtube.com/v/".$videocode."?hl=en_US&version=3";
echo $url;
$videoTitle = file_get_contents($url);
try {
if ($videoTitle) {
preg_match("/<title>(.+?)<\/title>/is", $videoTitle, $titleOfVideo);
echo $titleOfVideo[1];
} else {
return false;
}
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
的echo $url;
返回正确的视频网址。
但事后,如果我尝试的var_dump的$ videoTitle,它返回像CWS[%xڍZ[{�Fzƀ�@�:Ҷ��v"�uh �H�(E�9����ή� $1=�馧m�=nϽko�z������$��M��_l�oR�lﳶ�����~�� �C)��4��4ʤ[SI�nM�"�.��b�yB��ᵵ��5�u�8�\�
,我指的是一群人。 但它不会返回false。
为$ titleOfVideo返回array(0) { }
。 否则,如果我不尝试回显或var_dump任何东西,它不会为我回馈任何东西。 我在这里错过了什么?
被引导,使经过一番研究,我的代码看起来如下:
$videocode = $_helper->productAttribute($_product, $_data['value'], $_data['code']);
$videocode = explode('&feature=youtu.be', $videocode);
$url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=".$videocode[0]."&key=".$apikey;
echo $url;
$json = file_get_contents($url);
var_dump($json); //bool(false)
$json_data = json_decode($json, true);
if ($json_data) {
print_r($json_data);
} else {
return false;
}
的视频ID是正确的。但我的$json
返回false
。我还想念什么?
可能的[使用YouTube API检索并显示YouTube视频说明,标题使用id](http://stackoverflow.com/questions/34022332/retrieve-and-display-youtube-video-description-title-by -its-id-using-youtube-ap) – NineBerry
使用官方API而不是试图从实况网站读取元数据。你的问题中的具体问题是你使用的URL只能检索实际的视频,而不是包含视频的页面。 – NineBerry
@NineBerry在YouTube API工作之后看了一下后,我断定,如果'$ videocode'是我关于视频的唯一细节,那么执行所需操作是不够的。我对吗? – sklrboy