Php脚本后获取路径


Php - get path after php script

我到处搜索问题的答案,但都找不到。基本上,我想做的是在php脚本之后获得路径。ex."http://www.example.com/index.php/arg1/arg2/arg3/etc/"并在数组中获取arg1、arg2、arg3等。我如何在php中执行此操作,一旦执行此操作就会"http://www.example.com/arg1/arg2/arg3/etc"仍然返回相同的结果。如果没有,我该如何实现?

以下是如何获得答案,以及您将来将获得的其他一些答案。制作一个脚本,例如"test.php",只需在其中放一行:

<?php phpinfo();

然后使用浏览到它http://www.example.com/test.php/one/two/three/etc

$_SERVER值中查找与您要查找的内容相匹配的值。

在这种情况下,我在$_SERVER["PATH_INFO"]中看到了您想要的答案:"/1/2/3/etc"然后使用explode将其转换为数组:

print_r( explode('/',$_SERVER['PATH_INFO'] );

然而,有时$_SERVER["REQUEST_URI"]将是您想要的,尤其是在使用URL重写的情况下。

更新:

作为对评论的回应,以下是我要做的:

$args = explode('/',$_SERVER['REQUEST_URI']);
if($args[0] == 'index.php')array_shift($args);

这样尝试:

$url ="http://www.example.com/index.php/arg1/arg2/arg3/etc/";

$array =  explode("/",parse_url($url, PHP_URL_PATH));
if (in_array('index.php', $array)) 
{
    unset($array[array_search('index.php',$array)]);
}

print_r(array_values(array_filter($array)));

您可以尝试使用parse_urlparse_str

$url =$_SERVER['REQUEST_URI'];
 $ParseUrl = parse_url($url);
 print_r($ParseUrl);
 $arr =  parse_str($ParseUrl['query']);
 print_r($arr);