проанализируйте идентификатор видео YouTube с помощью preg_match

Я пытаюсь проанализировать видео идентификатор URL YouTube с помощью preg_match. Я нашел регулярное выражение на этом сайте, который, кажется, работает;

(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+

Как показано в этом рис.:

alt text

Мой 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>";

?>

Удачи

63
задан hakre 2 June 2012 в 12:31
поделиться

3 ответа

Use

 preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#", $subject, $matches);
2
ответ дан 24 November 2019 в 16:03
поделиться

используйте приведенный ниже код

$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]);
}
0
ответ дан 24 November 2019 в 16:03
поделиться

Лучше использовать 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);
11
ответ дан 24 November 2019 в 16:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: