【发布时间】:2018-12-17 12:00:07
【问题描述】:
我正在尝试使用 PHP 获取 URL 的一个非常特定的部分,以便以后可以将其用作变量。
我的网址是:
https://forums.mydomain.com/index.php?/clubs/11-Default-Club
我要提取的特定部分是/clubs/ 和-Default-Club 位之间的11 部分。
我想知道最好的方法是什么。我在这里看到了使用正则表达式解析器的示例,但对于这个特定的实例,我无法理解它。
谢谢
编辑;这是我迄今为止使用爆炸查询尝试过的,但它似乎给了我上面 URL 中不存在的各种元素:
$url = $_SERVER['REQUEST_URI'];
$url = explode('/', $url);
$url = array_filter($url);
$url = array_merge($url, array());
返回:
Array ( [0] => index.php?app=core&module=system&controller=widgets&do=getBlock&blockID=plugin_9_bimBlankWidget_dqtr03ssz&pageApp=core&pageModule=clubs&pageController=view&pageArea=header&orientation=horizontal&csrfKey=8e19769b95c733b05439755827a98ac8 )
【问题讨论】:
-
显示你当前的尝试
-
正则表达式似乎有点矫枉过正。在这种情况下,一个简单的explode() 应该可以工作。你应该从做一些尝试开始。如果您无法使其正常工作,请回来,向我们展示您尝试过的内容、预期结果、您得到的结果,我们可以从那里为您提供帮助。
-
@AleksG 按要求添加。
-
您添加的代码没有意义。看起来更像是方法调用的随机集合。另外,我根本看不出您如何从输入 URL 中获得显示的结果。你想要的是使用
explode分割/字符,然后再次使用explode分割-字符。 -
如果这是 url 中唯一的数字,您可以使用 filter_var() 仅获取 INT 部分