Получить КОД видео с YouTube по URL
у Меня есть такая строка "https://www.youtube.com/watch?v=jNQXAC9IVRw" и я хочу, чтобы получить только ИДЕНТИФИКАТОР, а именно, начиная с "?v="
Как я могу это сделать в PHP?
12
Author: Joao Paulo, 2014-12-12
4 answers
Можно использовать parse_url
для извлечения фрагментов url-адрес, и сочетать с parse_str
который преобразует строки запроса действителен в ассоциативный массив ($param
).
<?php
$url = 'https://www.youtube.com/watch?v=Y3eZEtwQVI8&list=UUdm1fwk5iqteE0MVOBUuE8Q%22';
$itens = parse_url ($url);
parse_str($itens['query'], $params);
echo '<pre>';
print_r($params);
Выход:
Array
(
[v] => Y3eZEtwQVI8
[list] => UUdm1fwk5iqteE0MVOBUuE8Q"
)
18
Author: rray, 2014-12-15 14:39:38
Можно использовать explode
$video = "https://www.youtube.com/watch?v=jNQXAC9IVRw";
$id = explode("?v=", $video);
Другие примеры - здесь
5
Author: Rene Sá, 2014-12-12 16:21:18
Вы Можете использовать regex
для извлечения ID:
$patternRegex = "/http[s]?:\\/\\/www\\.youtube\\.com\\/watch\\?v=(\\w+)/";
$urlYoutube = "https://www.youtube.com/watch?v=jNQXAC9IVRw";
preg_match($patternRegex, $urlYoutube, $matches);
См здесь, работать с их пример.
, Объясняя $patternRegex
:
-
/http[s]?:\\/\\/www\\.youtube\\.com\\/watch\\?v=
: Эта часть ищет начале URL-адреса. -
[s]?
- Указывает, что символ s может произойти или ноль раз. -
(\\w+)/
: Эта часть захватывает все алфавитно-цифровые символы и underscores наличии после ?=v до конца URL-адреса.
3
Author: Omni, 2014-12-12 17:26:47
Можно использовать таким образом, что любой формат url гнев работать
function YoutubeID($url)
{
if(strlen($url) > 11)
{
if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match))
{
return $match[1];
}
else
return false;
}
return $url;
}
3
Author: Alvaro Louzada, 2014-12-13 02:28:28