2011-02-01 3 views
2

Так что я пытаюсь получить идентификатор из URL для YouTube ..регулярное выражение часть URL

здесь URL-адрес

http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2

то есть также - в URL тоже.

он не позволил бы мне опубликовать еще один URL, но это то же самое, что и выше, но с идентификатором ucvkO0x-МЬ4

как можно захватить между видео/и/Похожая (ИО) с регулярным выражением?

Я пытался использовать txt2re.com, который я всегда использую, но это не работает в этом случае ..

спасибо!

+0

Попробуйте добавить второй URL, заключенный в обратные кавычки, как я сделал первый. (Я мог бы добавить его сам, но я хочу знать, если он позволит * вы его добавить.) –

ответ

3

Не нужно даже регулярное выражение, просто strpos и substr сделают это. Или просто использовать explode как это:

<?php 

$url = 'http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2'; 

//BY STRPOS/SUBSTR 
echo substr($url, 42, strpos($url, '/related', 42) - 42); 

//BY EXPLODE 
$parts = explode('/', $url); 
echo $parts[6]; 
?> 
+1

+1 для применения принципа KISS. –

+0

+1, но мне больше понравился ответ перед «взрывом». – sberry

+0

@ sberry2A, OK Я также добавил метод strpos. – shamittomar

0

с помощью регулярных выражений вы можете сделать это

$ URL = «http://gdata.youtube.com/feeds/api/videos/ ? kffacxfA7G4/связанные v = 2" ;

preg_match ('/ videos \/(. +) \/Related /', $ url, $ match);

$ id = $ match [1];

1

Это, как я хотел бы сделать это

$url = 'http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2'; 
preg_match('#.*videos/([0-9a-zA-Z_\-]{11})/related.*#', $url, $matches); 
print_r($matches); 

Но @shamittomar прав насчет strpos и substr

Смежные вопросы