1

我有网址http://domain.com/script.php?l=7&p=146#p146。我希望能够得到 p= 之后的数字,而不需要 #。此外,哈希可能并不总是存在,所以有时它可能会变成script.php?l=7&p=146. 我知道这与正则表达式字符有关+,但我不完全确定如何使用它。有人可以创建正则表达式并解释它是如何工作的吗?

4

2 回答 2

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

于 2012-10-12T20:39:17.103 回答
1

不要重新发明轮子。使用内置函数,例如parse_url解析 URL。

文档和示例: http: //php.net/manual/en/function.parse-url.php

于 2012-10-12T20:40:06.063 回答