当前url的回声部分给出了错误

时间:2014-08-07 08:25:09

标签: php

这是我的网址格式:

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];

但它说:

警告:非法字符串偏移'路径'

谢谢

4 个答案:

答案 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];

这是第四个索引,因为

  • [0]包含"http:"
  • [1]包含""
  • [2]包含"dev.test.de"
  • [3]包含"profile"
  • [4]包含"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);