Я бы не использовал 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
)
*/
Вероятно, вы могли бы определить его по имени хоста и пути в этом случае.