我必须做一个插件,允许您在网站上插入来自youtube的视频。为此我遇到了一个问题,我想验证来自youtube的url地址的正确性。我想在帐户下检查地址的正确性:
- 检查电影的ID是否包含在地址
中
- 检查地址是否包含(youtube.com或youtu.be)
我的代码仅检查网址是否包含(youtu.be或youtube.com)。我不知道如何检查地址是否有11个字符长的电影ID。你有什么想法吗?
<?php
$url = 'https://www.youtube.com/watch?v=knfrxj0T5NY';
if (strpos($url, 'youtube.com') || strpos($url, 'youtu.be')){
echo 'ok';
}else{
echo 'no';
}
?>
答案 0 :(得分:3)
使用cURL的方法:
function isValidYoutubeURL($url) {
// Let's check the host first
$host = parse_url($url, PHP_URL_HOST);
if (!in_array($host, array('youtube.com', 'www.youtube.com'))) {
return false;
}
$ch = curl_init('www.youtube.com/oembed?url='.urlencode($url).'&format=json');
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($status !== 404);
}