2016-04-01 90 views
-1

。我試圖從url中匹配一些ID,並返回所有ID。preg_match_all只返回索引爲0的第一個數組,而不是索引爲1的第一個數組

代碼如下。

的字符串是這樣的

"gfdgfds.php?id=67f8d4fd6d4&gfddgfds.php? 
id=67f8d4f6d4&gfddgfds.php?id=67f8d4f6d4&gfdsgfds.php?id=67f8d4f6fdd4&" 

模式

$pattern = '/p?id=[0-9A-Za-z]*/'; 

CODE

preg_match_all($pattern,$input,$matches); 
    //var_dump(count($matches)); 
    if(count($matches) > 0) { 
     var_dump($matches); 
     //return $matches[1]; 
    } else { 
     die('No matches found.');  
    } 

但從上面當我做var_dump($匹配)我得到。

array (size=1) 
    0 => 

我期待得到

array (size=1) 
     0 =>array() 
     1 =>array() // So I can use this. 

缺少什麼我在這裏,謝謝。

。另外,我希望$ pattern =「'/ p?id = [0-9A-Za-z] * /'」匹配「php?id = value」,而不僅僅是任何id =值。

+0

您使用正則表達式解析URL參數的任何特定原因? – Flosculus

回答

0

而不是使用正則表達式,你可以使用parse_url功能,但不知道到底什麼是你期望的輸出,但不是preg_match_all使用preg_match具有以下的正則表達式

(.php\?id=(\w+)) 

所以,你的代碼看起來像作爲

preg_match("/(.php\?id=(\w+))/",$your_string,$matches); 
相關問題