这是我的网址格式:
http://dev.test.de/profile/id/
我正在尝试回显当前网址的ID。
$parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$path_parts= explode('/', $parts[path]);
echo $user = $path_parts[2];
但它说:
警告:非法字符串偏移'路径'
谢谢
答案 0 :(得分:1)
您的$parts
变量是一个字符串。
$parts = 'http://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];
$path_parts= explode('/', $parts);
echo $user = $path_parts[4];
这将返回 id 。
答案 1 :(得分:1)
这应该适合你。
$parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$path_parts= explode('/', $parts);
echo $user = $path_parts[4];
这是第四个索引,因为
"http:"
""
"dev.test.de"
"profile"
"id"
答案 2 :(得分:0)
试试这个
$parts = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$path_parts= explode('/', $parts);
echo $user = $path_parts[2];
答案 3 :(得分:0)
您的示例中存在两个问题。
$parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$_SERVER
是一个超级全局数组,HTTP_HOST
是其中一个索引。由于这是一个关联数组,您需要用一对单引号或双引号将索引名称括起来。所以它应该是$_SERVER['HTTP_HOST']
,因为这是在一个字符串中,你需要使用{}
来插入变量/数组名称。所以它看起来像:
$parts = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
或简单地将它们分开为
$parts = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
你的第二个问题是:
$path_parts= explode('/', $parts[path]);
就你的代码而言$parts
是一个字符串而不是一个数组,所以$parts[path]
在这里没有任何意义。它应该是:
$path_parts= explode('/', $parts);