function parse_youtube($link){ $regexstr = '~ # Match Youtube link and embed code (?: # Group to match embed codes (?:<iframe [^>]*src=")? # If iframe match up to first quote of src |(?: # Group to match if older embed (?:<object .*>)? # Match opening Object tag (?:<param .*</param>)* # Match all param tags (?:<embed [^>]*src=")? # Match embed tag to the first quote of src )? # End older embed code group )? # End embed code groups (?: # Group youtube url https?:\/\/ # Either http or https (?:[\w]+\.)* # Optional subdomains (?: # Group host alternatives. youtu\.be/ # Either youtu.be, | youtube\.com # or youtube.com | youtube-nocookie\.com # or youtube-nocookie.com ) # End Host Group (?:\S*[^\w\-\s])? # Extra stuff up to VIDEO_ID ([\w\-]{11}) # $1: VIDEO_ID is numeric [^\s]* # Not a space ) # End group "? # Match end quote if part of src (?:[^>]*>)? # Match any extra stuff up to close brace (?: # Group to match last embed code </iframe> # Match the end of the iframe |</embed></object> # or Match the end of the older embed )? # End Group of last bit of embed code ~ix'; preg_match($regexstr, $link, $matches); return $matches[1]; } function get_youtube_id($embadedcode){ if(strpos($embadedcode,'iframe') !== false){ return parse_youtube($embadedcode); } else if(strpos($embadedcode,'object') !== false){ preg_match('#(?<=youtube\.com/v/)\w+#', $embadedcode, $matches); return $matches[0]; } }
Monday, July 8, 2013
Get Youtube video id from embaded code - PHP
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment