You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							86 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							1.8 KiB
						
					
					
				| <?php | |
| /** | |
|  * Created by Error202 | |
|  * Date: 06.07.2018 | |
|  */ | |
|  | |
| namespace core\helpers; | |
|  | |
|  | |
| class VideoHelper | |
| { | |
| 	public static function identityProvider($url) | |
| 	{ | |
| 		if (preg_match('%youtube|youtu\.be%i', $url)) { | |
| 			return 'youtube'; | |
| 		} | |
| 		elseif (preg_match('%vimeo%i', $url)) { | |
| 			return 'vimeo'; | |
| 		} | |
| 		return null; | |
| 	} | |
|  | |
| 	public static function getThumb($url) | |
| 	{ | |
| 		$src = ''; | |
| 		switch (self::identityProvider($url)) { | |
| 			case 'youtube': | |
| 				$id = VideoHelper::parseYoutubeUrl($url); | |
| 				$src = 'https://i.ytimg.com/vi/' . $id . '/maxresdefault.jpg'; | |
| 				break; | |
| 			case 'vimeo': | |
| 				$id = VideoHelper::parseVimeoUrl($url); | |
| 				$data = file_get_contents("http://vimeo.com/api/v2/video/$id.json"); | |
| 				$data = json_decode($data); | |
| 				$src = $data[0]->thumbnail_large; | |
| 				break; | |
| 		} | |
| 		return $src; | |
| 	} | |
|  | |
| 	public static function parseVimeoUrl($url) | |
| 	{ | |
| 		$urls = parse_url($url); | |
| 		// https://vimeo.com/274720181 | |
| 		if($urls['host'] == 'vimeo.com'){ | |
| 			$id = ltrim($urls['path'],'/'); | |
| 		} | |
| 		// https://player.vimeo.com/video/274720181 | |
| 		else { | |
| 			$parts = explode('/',$urls['path']); | |
| 			$id = end($parts); | |
| 		} | |
|  | |
| 		return $id; | |
| 	} | |
|  | |
| 	public static function parseYoutubeUrl($url) | |
| 	{ | |
| 		$urls = parse_url($url); | |
| 		//url is http://youtu.be/xxxx | |
| 		if($urls['host'] == 'youtu.be'){ | |
| 			$id = ltrim($urls['path'],'/'); | |
| 		} | |
| 		//url is http://www.youtube.com/embed/xxxx | |
| 		else if(strpos($urls['path'],'embed') == 1){ | |
| 			$parts = explode('/',$urls['path']); | |
| 			$id = end($parts); | |
| 		} | |
| 		//url is xxxx only | |
| 		else if(strpos($url,'/')===false){ | |
| 			$id = $url; | |
| 		} | |
| 		//http://www.youtube.com/watch?feature=player_embedded&v=m-t4pcO99gI | |
| 		//url is http://www.youtube.com/watch?v=xxxx | |
| 		else{ | |
| 			parse_str($urls['query']); | |
| 			/* @var $v */ | |
| 			$id = $v; | |
| 			if(!empty($feature)){ | |
| 				$id = end(explode('v=',$urls['query'])); | |
| 			} | |
| 		} | |
| 		return $id; | |
| 	} | |
|  | |
| } |