2015-01-17 70 views
0

我想用php返回URL的特定部分。例如,如果網址是:返回URL的特定部分

http://website.com/part1/part2/part3/detail/page_id/number/page/2 

http://website.com/part1/part2/part3/detail/page_id/number/page/3 

我想回數。

可以嗎?

$pattern = "/\d+$/"; 
$input = "http://website.com/part1/part2/part3/detail/page_id/number/page/2"; 
preg_match($pattern, $input, $matches); 
$post_id = $matches[8]; 
+3

http://stackoverflow.com/questions/6985505/get-part-of-url –

+0

非常感謝你@PeterPopelyshko – AFN

回答

0

使用它:

return $id3 = $parts[count($parts) - 3]; 
0

我認爲該ID將在$matches[0]。 但是,這個正則表達式模式會在任何網址結尾處匹配任何網址。例如。

http://differentdomain.com/whatever/7 

也許這對你已經足夠了,如果不是,請詳細描述你的用例。

0

PHP提供parse_url()功能,通過該組件,您想只得到一個特定的組件拆分URL作爲RFC 3986

$s = 'http://website.com/part1/part2/part3/detail/page_id/number/page/2'; 
$u = parse_url($s); 

// gives you 
array (size=3) 
'scheme' => string 'http' (length=4) 
'host' => string 'website.com' (length=11) 
'path' => string '/part1/part2/part3/detail/page_id/number/page/2' (length=47) 

表示在情況下,函數可以接受一個標誌作爲第二個參數(例如PHP_URL_PATH),幫助解決這個問題。

$u = parse_url($s, PHP_URL_PATH); 

// gives you 
string '/part1/part2/part3/detail/page_id/number/page/2' (length=47) 

現在,您可以創建段的陣列,並闡述它的邏輯:

$segments = explode('/',trim($u,'/'));