2013-04-12 282 views
1
// gets video ID from URL 
$url = "http://vimeo.com/12345678"; 
preg_match("/vimeo.*\/(\d+)/i", $url, $vimeoID); 
var_dump($vimeoID); 

可变转储:为什么PHP preg_match返回空?

array(0) { 
} 

它的工作原理here所以我错过了什么?

+0

这对我的作品! – HamZa

+1

尝试对您的字符串使用单引号而不是双引号,或将每个反斜杠加倍。你运行的是哪个版本的PHP? – FrankieTheKneeMan

回答

0

更具体与您的正则表达式来阻止贪婪的表情:

preg_match(":vimeo.\w{2,4}/(\d+):i", $url, $vimeoID); 
+0

贪婪不会阻止比赛;它会(可能)比预期的更匹配。 –

0

对我而言,按预期工作。我得到这个..

array(2) { 
[0]=> 
string(18) "vimeo.com/12345678" 
[1]=> 
string(8) "12345678" 
} 
0

试试这个: preg_match("/vimeo\.com\/([0-9]{1,})/i", $url, $vimeoID);