Php 当前url的回显部分出现错误

Php 当前url的回显部分出现错误,php,Php,这是我的url表单: http://dev.test.de/profile/id/ 我正在尝试回显当前url的id $parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $path_parts= explode('/', $parts[path]); echo $user = $path_parts[2]; 但它说: 警告:字符串偏移量“路径”非法 谢谢您的$parts变量是一个字符串 $parts = 'http://' .

这是我的url表单:

http://dev.test.de/profile/id/
我正在尝试回显当前url的id

$parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$path_parts= explode('/', $parts[path]);
echo $user = $path_parts[2];
但它说:

警告:字符串偏移量“路径”非法


谢谢

您的
$parts
变量是一个字符串

$parts = 'http://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];
$path_parts= explode('/', $parts);
echo $user = $path_parts[4];
这将返回id。

请尝试此操作

$parts = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$path_parts= explode('/', $parts);
echo $user = $path_parts[2];

这个,应该对你有用

$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] 包含
    “配置文件”
  • [4] 包含
    “id”

    • 您的示例中有两个问题

      $parts = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
      
      $\u服务器
      是一个超级全局数组,
      HTTP\u主机
      是它的索引之一。由于这是一个关联数组,您需要用一对单引号或双引号将索引名括起来。因此它应该是
      $\u SERVER['HTTP\u 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);
      

      调用explode作为
      $path\u parts=explode(“/”,$parts)没有索引,例如
      $parts[path]
      <代码>$parts
      是一个字符串。你正在把它炸成一个阵列,我在这里回答:你试过这个吗?这是错误的。[2] 不是正确的索引。