Какой-либо preg_match, чтобы проверить, является ли URL youtube/vimeo/dailymotion видеосвязью?

Каков лучший preg_match синтаксис, чтобы проверить, является ли URL видеосвязью youtube/vimeo/или dailymotion?

возможно, если это твердо, затем только для проверки доменного имени.

Спасибо

7
задан Ryan 24 January 2010 в 23:51
поделиться

3 ответа

Я бы не использовал preg_match () для этого. Я думаю parse_url () , вероятно, является лучшим выбором. Вы можете передавать в него строку URL, и это сломает его во всех подкомпонентах для вас.

Я не знаю, каковы конкретные URL-адреса видео для этих сайтов, которые вы упомянули, похоже, но я уверен, что вы можете придумать некоторые определенные критерии для каждого, которые вы могли бы использовать с результатами Parse_URL ( ) для идентификации. В качестве примера, вот что может выглядеть то, что может выглядеть разбивка на YouTube:

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw");
print_r($res);

/* outputs: 
Array (
    [scheme] => http
    [host] => www.youtube.com
    [path] => /watch
    [query] => v=Sv5iEK-IEzw
)
*/

Вы, вероятно, можете определить его на основе имени хоста и пути в этом случае.

11
ответ дан 6 December 2019 в 08:14
поделиться
if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) {
   echo "It's a video";
}
2
ответ дан 6 December 2019 в 08:14
поделиться

Я не знаю, как вы получите эту урлу, но, возможно, вы захотите проверить на "посмотреть", а не просто www.youtube.com (так как youtube видео ссылки обычно имеют путь, как посмотреть?что-то?

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw");
if ( preg_match( "/\/watch/" , $res["path"]  ) ){
    echo "found video\n ";
}
1
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: