Каков лучший preg_match синтаксис, чтобы проверить, является ли URL видеосвязью youtube/vimeo/или dailymotion?
возможно, если это твердо, затем только для проверки доменного имени.
Спасибо
Я бы не использовал 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
)
*/
Вы, вероятно, можете определить его на основе имени хоста и пути в этом случае.
if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) {
echo "It's a video";
}
Я не знаю, как вы получите эту урлу, но, возможно, вы захотите проверить на "посмотреть", а не просто 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 ";
}