Пример:
http://www.dailymotion.com/video/x4xvnz_the-funny-crash-compilation_fun
Как получить x4xvnz
?
Вы можете использовать basename
[docs], чтобы получить последнюю часть URL-адреса, а затем strtok
[docs], чтобы получить идентификатор (все символы до первого _
):
$id = strtok(basename($url), '_');
/video\/([^_]+)/
должен сделать трюк. Это захватывает в первом захвате весь текст после video/
вверх до первого _
.
preg_match('#<object[^>]+>.+?http://www.dailymotion.com/swf/video/([A-Za-z0-9]+).+?</object>#s', $dailymotionurl, $matches); // Dailymotion url if(!isset($matches[1])) { preg_match('#http://www.dailymotion.com/video/([A-Za-z0-9]+)#s', $dailymotionurl, $matches); } // Dailymotion iframe if(!isset($matches[1])) { preg_match('#http://www.dailymotion.com/embed/video/([A-Za-z0-9]+)#s', $dailymotionurl, $matches); } $id = $matches[1];
<?php $output = parse_url("http://www.dailymotion.com/video/x4xvnz_the-funny-crash-compilation_fun"); // The part you want $url= $output['path']; $parts = explode('/',$url); $parts = explode('_',$parts[2]); echo $parts[0];
Я использую это:
function getDailyMotionId($url) { if (preg_match('!^.+dailymotion\.com/(video|hub)/([^_]+)[^#]*(#video=([^_&]+))?|(dai\.ly/([^_]+))!', $url, $m)) { if (isset($m[6])) { return $m[6]; } if (isset($m[4])) { return $m[4]; } return $m[2]; } return false; }
Он может обрабатывать различные URL-адреса:
$dailymotion = [ 'http://www.dailymotion.com/video/x2jvvep_coup-incroyable-pendant-un-match-de-ping-pong_tv', 'http://www.dailymotion.com/video/x2jvvep_rates-of-exchange-like-a-renegade_music', 'http://www.dailymotion.com/video/x2jvvep', 'http://www.dailymotion.com/hub/x2jvvep_Galatasaray', 'http://www.dailymotion.com/hub/x2jvvep_Galatasaray#video=x2jvvep', 'http://www.dailymotion.com/video/x2jvvep_hakan-yukur-klip_sport', 'http://dai.ly/x2jvvep', ];
Проверьте мой github ( https://github.com/lingtalfi/video-ids-and-thumbnails/blob/master/testvideo.php ), я предоставляю функции для получения идентификаторов (а также миниатюр) из youtube, vimeo и dailymotion.