2013-05-15 53 views

回答

3

使用此

$input = 'http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3'; 
preg_match('~id_(.*?).html~', $input, $output); 
echo $output[1]; 

輸出

XNTU2NzQyNzQ0 

Codepad

+1

完美。謝謝! – alexchenco

+0

@alexchenco歡迎。 :) –

1

你可以試試下面的代碼:

<?php 
$varStr = 'http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3'; 
$filename = basename($varStr); 
preg_match_all('/id_(.*)\.html/', $filename, $match); 
echo $match[1][0]; 
?> 
0

就在你的正則表達式中使用命名結果的緣故, 一世會建議做這樣的事情。其他人的工作都很好,我剛剛添加了命名分組以及忽略週期的非貪婪方法。

<? 
$regex = "/\id_(?P<video_id>[^\.]*)\./"; 

if(preg_match($regex, "http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3", $matches)) { 
     echo $matches['video_id']; 
} 
相關問題