- var_dump: documentation ( source)
- parse_str: documentation ( source)
- str_replace: documentation ( source)
- parse_url: documentation ( source)
<?php
function getEmbedUrl($url)
{
$parseURL = parse_url($url);
// YouTube
if ($parseURL['host'] === 'youtube.com') {
parse_str($parseURL['query'], $query);
$code = $query['v'];
return "//www.youtube.com/embed/{$code}?rel=0";
}
if ($parseURL['host'] === 'youtu.be') {
$path = $parseURL['path'];
return "//www.youtube.com/embed{$path}?rel=0";
}
// Vimeo
if ($parseURL['host'] === 'vimeo.com') {
$path = $parseURL['path'];
return "//player.vimeo.com/video{$path}";
}
return str_replace('http://', '//', $uri);
}
$tests = [
'https://youtube.com/watch?v=xluE7UQPOJ0' => '//www.youtube.com/embed/xluE7UQPOJ0?rel=0',
'http://youtu.be/nt0spzes2j0' => '//www.youtube.com/embed/nt0spzes2j0?rel=0',
'https://vimeo.com/172016440' => '//player.vimeo.com/video/172016440',
];
foreach($tests as $url => $embed) {
$result = getEmbedUrl($url);
var_dump($url, $embed, $result, $embed === $result);
echo PHP_EOL;
}