2012-10-12 45 views
1

我有網址http://domain.com/script.php?l=7&p=146#p146。我希望能夠在p =之後獲得該號碼,而不需要#號。此外,哈希可能並不總是在那裏,所以有時它可能會變成script.php?l=7&p=146。我知道這是與正則表達式字符+有關,但我不完全確定如何使用它。有人可以創建正則表達式並解釋它是如何工作的嗎?正則表達式,如何匹配這個字符串?

+4

有更好的方法來做到這一點比正則表達式。 –

+0

你可以用更好的方式發佈答案嗎?謝謝:) –

+4

你試過[''parse_url()'](http://php.net/manual/en/function.parse-url.php)嗎? – NullUserException

回答

5

這裏不需要正則表達式。

$query = parse_url("http://domain.com/script.php?l=7&p=146#p146", PHP_URL_QUERY); 
parse_str($query, $params); 
echo $params['p']; 

parse_url可以讓你的URL的所有不同的元素。並且parse_str需要一個查詢字符串(您在?和可選的#之間找到的東西在URL中),併爲您找出不同的參數。您也可以省略參數$params到該函數,然後parse_str會爲您定義一些變量(之後您可以在$p中找到結果)。但我個人不喜歡使用parse_str這種副作用。

如果你想讀一些更多:PHP文件上parse_urlparse_str