Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php url的正则表达式部分_Php_Regex - Fatal编程技术网

Php url的正则表达式部分

Php url的正则表达式部分,php,regex,Php,Regex,所以我试图从youtube的url获取id 这是网址 http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2 然后在url中也有一个 它不允许我发布另一个url,但与上面相同,但id为ucvkO0x-mL4 如何在视频/和/与regex相关的id之间抓取 我试着使用txt2re.com,这是我一直使用的,但它不适用于这种情况 谢谢 甚至不需要正则表达式,只要一个简单的strop和substr就可以了。或者像这样使用exp

所以我试图从youtube的url获取id

这是网址

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

然后在url中也有一个

它不允许我发布另一个url,但与上面相同,但id为ucvkO0x-mL4

如何在视频/和/与regex相关的id之间抓取

我试着使用txt2re.com,这是我一直使用的,但它不适用于这种情况


谢谢

甚至不需要正则表达式,只要一个简单的strop和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];
?>

?:.*视频/*?/相关\?v=2

使用正则表达式,您可以通过

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

preg_match'/videos\/.+\/related/',$url,$match


$id=$match[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的说法是正确的,但我更喜欢在分解方法之前的答案。@sberry2A,好的,我也添加了strpos方法。尝试添加第二个包含在反勾中的URL,就像我对第一个URL所做的那样。我可以自己添加,但我想知道它是否允许您添加。