Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从URL获取部件_Php_Wordpress - Fatal编程技术网

Php 如何从URL获取部件

Php 如何从URL获取部件,php,wordpress,Php,Wordpress,很抱歉这个标题可能有误导性。我不知道如何更好地描述它 访问status页面时,我想获取附加的ID。但我不想使用get字段(wordpress将/status?ID=2134设置为/status/?ID=1234——这是唯一的原因) 这是我的网址 http://foo.bar.com/status/1234/ 我想得到1234 好的,很好。例如,我可以使用$\u SERVER[“REQUEST\u URI”]+trim()。也许正则表达式是完成这项工作的关键,因为可以执行类似于/status/1

很抱歉这个标题可能有误导性。我不知道如何更好地描述它

访问
status
页面时,我想获取附加的ID。但我不想使用get字段(wordpress将
/status?ID=2134
设置为
/status/?ID=1234
——这是唯一的原因)

这是我的网址

http://foo.bar.com/status/1234/
我想得到
1234

好的,很好。例如,我可以使用
$\u SERVER[“REQUEST\u URI”]
+
trim()
。也许正则表达式是完成这项工作的关键,因为可以执行类似于
/status/1234/foo/bar/baz/。
的操作,但我想知道PHP是否内置了一些东西来获取url的这一部分

使用
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);
$url='1!'http://foo.bar.com/status/1234/';
$path=parse_url($url,PHP_url_path);
预匹配(“~/status/(?P\d+/”,$path,$result);
$num=isset($result['num'])$结果['num']:null;
var_dump($num);

尝试解析URL并返回一个关联数组,该数组包含使用
parse\u URL
显示的URL的任何不同组件,使用
explode
将其分解,最后使用
end
选择状态id

像这样试试

$url   = 'http://foo.bar.com/status/1234/';
$statusId = explode('/',trim(parse_url($url, PHP_URL_PATH), '/'));
print end($statusId);
演示版

修剪
-

分解
-


parse_url
-[1]:

我所做的:
explode('/',parse_url($url,PHP_url_PATH))@Dagon是的,很好。甚至比正则表达式更好的解决方案。但是将解析url(..)
替换为
$\u服务器['REQUEST\u URI']
。请随意发布此答案,因为btw$url是有问题的url