"youtube", "/tiktok/" => "tiktok", "/rutube/" => "rutube", "/vk/" => "vk", "/vimeo/" => "vimeo", "/likee/" => "likee", ); foreach ($matches as $regexp => $provider) { if (preg_match($regexp, $domain)) { return $provider; } } return null; } /** * @param string $url * * @return string|null */ function get_video_id($url) { $video_service_provider = get_video_service_provider($url); $matches = array( "youtube" => get_youtube_video_id($url), "vimeo" => get_vimeo_video_id($url), "tiktok" => get_tiktok_video_id($url), "rutube" => get_rutube_video_id($url), "vk" => get_vk_video_id($url), "likee" => get_likee_video_id($url), ); return $matches[$video_service_provider] ?: null; } /** * @param $url * * @return string|null */ function get_embed_code($url) { $video_service_provider = get_video_service_provider($url); $matches = array( "youtube" => get_youtube_embed_code($url), "tiktok" => get_tiktok_embed_code($url), "rutube" => get_rutube_embed_code($url), "vimeo" => get_vimeo_embed_code($url), "vk" => get_vk_embed_code($url), "likee" => get_likee_embed_code($url), ); return $matches[$video_service_provider] ?: null; } /** * @param string $url * * @return string */ function get_youtube_embed_code($url) { $id = get_youtube_video_id($url); return ""; } /** * @param string $url * * @return string|null */ function get_vimeo_video_id($url) { if (preg_match('#(?:https?://)?(?:www.)?(?:player.)?vimeo.com/(?:[a-z]*/)*([0-9]{6,11})[?]?.*#', $url, $matches)) { return $matches[1]; } return null; } /** * @param string $url * * @return string */ function get_vimeo_embed_code($url) { $id = get_video_id($url); return ""; } /** * @param string $url * * @return string|null */ function get_tiktok_video_id($url) { $url = parse_url($url); $parts = explode("/", $url["path"]); return $parts[3] ?: null; } /** * @param $url * * @return string */ function get_tiktok_embed_code($url) { $id = get_tiktok_video_id($url); return "
"; } /** * @param string $url * * @return string|null */ function get_youtube_video_id($url) { $parts = parse_url($url); if (isset($parts["host"])) { $host = $parts["host"]; if (strpos($host, "youtube") === false && strpos($host, "youtu.be") === false) { return false; } } if (isset($parts["query"])) { parse_str($parts["query"], $qs); if (isset($qs["v"])) { return $qs["v"]; } else { if (isset($qs["vi"])) { return $qs["vi"]; } } } if (isset($parts["path"])) { $path = explode("/", trim($parts["path"], "/")); return $path[count($path) - 1]; } return null; } /** * @param string $url * * @return string */ function get_rutube_video_id($url) { $url = parse_url($url); $parts = explode("/", $url["path"]); return $parts[2] ?: null; } /** * @param string $url * * @return string */ function get_rutube_embed_code($url) { $id = get_rutube_video_id($url); return ""; } /** * @param string $url * * @return string|null */ function get_vk_video_id($url) { preg_match("/video([0-9_-]+)/", $url, $matches); return $matches[1] ?: null; } /** * @param string $url * * @return string */ function get_vk_embed_code($url) { $id = explode("_", get_vk_video_id($url)); return ""; } /** * @param string $url * * @return string|null */ function get_likee_video_id($url) { $path = parse_url($url, PHP_URL_PATH); $parts = explode("/", $path); return end($parts) ?: null; } /** * @param string $url * * @return string */ function get_likee_embed_code($url) { $id = get_likee_video_id($url); return "
"; } }