验证youtube地址

时间:2018-04-01 15:40:01

标签: php

我必须做一个插件,允许您在网站上插入来自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';
}
?>

1 个答案:

答案 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);
}