0

我有一个页面:

http://somewebsite.com/1234/test/

如何1234使用 PHP 正则表达式从中提取?

4

6 回答 6

6

不要使用 RegEx 使用parse_url()and explode()


对于一个级别,使用dirname()

于 2012-04-13T16:30:14.277 回答
2

如果我不需要它,我喜欢避免使用正则表达式,所以我建议你这样做:

$url = explode("/", $_SERVER['PHP_SELF']);

然后您可以使用以下方法引用您想要的 url 部分:

$url[1]

如果您需要/想要使用正则表达式,我会考虑一下,稍后再尝试发布解决方案。

于 2012-04-13T16:34:02.337 回答
1

要获得上面的一个,您可以使用

echo dirname("http://www.google.com/cake/lol");

输出

http://www.google.com/cake

或者只是/和/之间的那一点你可以做

var_dump(explode("/", "http://www.google.com/cake/lol"));

或者在正则表达式中

preg_match_all('@/([^/]*)/@',$sourcestring,$matches);
于 2012-04-13T16:32:30.470 回答
0

对它执行正则表达式$_SCRIPT['REQUEST_URL']或将其拆分为 '/' 并获取第一个元素 => 1234

于 2012-04-13T16:31:58.397 回答
0

如果 PHP 是通过启动该 URL 触发的,那么这些可能是真的:

$_SERVER['REQUEST_URI'] == "/1234/test/"

dirname($_SERVER['REQUEST_URI']) == "/1234"

basename(dirname($_SERVER['REQUEST_URI'])) == "1234"
于 2012-04-13T16:36:21.090 回答
0
preg_match(".*\/(\w+)\/(\w+)\/", "$url", $matches);

父目录是$matches[1].

于 2012-04-13T16:43:56.697 回答