很抱歉这可能是误导性的标题。不确定如何更好地描述它。
访问status
页面时,我想获取附加的ID。但是我不想使用GET字段(wordpress使/status?id=2134
成为/status/?id=1234
- 这实际上是唯一的原因。
所以这是我的网址
http://foo.bar.com/status/1234/
我想获得1234
好的。我可以使用类似$_SERVER["REQUEST_URI"]
+ trim()
的内容。可能正则表达式是完成这项工作的关键,因为我可以做/status/1234/foo/bar/baz/..
这样的事情但是我想知道是否有内置的PHP来获取这部分网址。
答案 0 :(得分:0)
使用parse_url()
功能,并将其解压缩:
$url = 'http://foo.bar.com/status/1234/';
$path = trim(parse_url($url, PHP_URL_PATH), '/');
$items = explode('/', $path);
$num = array_pop($items);
var_dump($num);
你也可以使用正则表达式,如果你喜欢它的话:
$url = 'http://foo.bar.com/status/1234/';
$path = parse_url($url, PHP_URL_PATH);
preg_match('~/status/(?P<num>\d+)/?~', $path, $result);
$num = isset($result['num']) ? $result['num'] : null;
var_dump($num);
答案 1 :(得分:0)
尝试解析URL并返回一个关联数组,其中包含使用parse_url
存在的URL的各种组件,使用explode
将其展开,最后使用{{1}选择状态ID }
试试这个
end
$url = 'http://foo.bar.com/status/1234/';
$statusId = explode('/',trim(parse_url($url, PHP_URL_PATH), '/'));
print end($statusId);
- http://php.net/trim
trim
- http://php.net/explode
explode
- [1]:http://php.net/manual/en/function.parse-url.php