Я пытаюсь проанализировать видео идентификатор URL YouTube с помощью preg_match. Я нашел регулярное выражение на этом сайте, который, кажется, работает;
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
Как показано в этом рис.:
Мой PHP следующим образом, но он не работает (дает Неизвестный модификатор' [' ошибка)...
<?
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
preg_match("(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+", $subject, $matches);
print "<pre>";
print_r($matches);
print "</pre>";
?>
Удачи
Use
preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#", $subject, $matches);
используйте приведенный ниже код
$url = "" // here is url of youtube video
$pattern = getPatternFromUrl($url); //this will retun video id
function getPatternFromUrl($url)
{
$url = $url.'&';
$pattern = '/v=(.+?)&+/';
preg_match($pattern, $url, $matches);
//echo $matches[1]; die;
return ($matches[1]);
}
Лучше использовать parse_url
и parse_str
для разбора URL и строки запроса:
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
$url = parse_url($subject);
parse_str($url['query'], $query);
var_dump($query);