从研究来看,验证YT视频ID是否存在的最佳做法似乎是通过YT API。我是php的新学习者并且构建了一个函数,但是它有错误我不确定是否正确地接近这个或者是否需要大大改变我的代码。如何正确验证YouTube视频ID?
我得到的两个错误:
Warning: Wrong parameter count for preg_replace()
Fatal error: Class 'HTTP' not found
代码
function validYoutubeVideo($isValid) {
$isValid = false;
if ($videoID == preg_replace('~https?://(?:[0-9A-Z-]+\.)?(?:youtu\.be/| youtube\.com\S*[^\w\-\s])([\w\-]{11})
(?=[^\w\-]|$)(?![?=&+%\w]*(?:[\'"][^<>]*>| </a>))[?=&+%\w-]*~ix','$1')){
$http = new HTTP("http://gdata.youtube.com/feeds/api/videos/".$serverVideoID, "GET");
$http = $result;
if ( $videoID == $result) {
$isValid = true;
}
}
return $isValid;
}
答案 0 :(得分:3)
使用youtube API检查的最佳方法是通过我使用的方法:
$headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $videoID);
if (!strpos($headers[0], '200')) {
echo "The YouTube video you entered does not exist";
return false;
}
只需将其复制并替换为其他代码即可,您应该好好去。