PHP:如何获取最后的目录路径并回显它们

时间:2014-10-17 16:57:54

标签: php .htaccess

我的.htaccess和index.php文件位于“localhost / poppers / f /”中。我有来自index.php处理的“/ f /”目录的所有url请求。我想得到的和echo就是“f”目录之后的整个路径,无论它包含多少尾部斜杠。

示例: localhost / poppers / f / abcdef / 123456 / xyz / 456

我想要的输出是: abcdef / 123456 / xyz / 456 (不论以下目录的数量)

我正在尝试使用的是:dirname(dirname($_SERVER['REQUEST_URI'])),但似乎无效。

2 个答案:

答案 0 :(得分:1)

$string = "localhost/poppers/f/abcdef/123456/xyz/456";
$parts = explode('/', $string);

此时你可以简单地删除前两个部分并将其余部分内爆()...

echo implode( array_slice($parts,3), '/' );

答案 1 :(得分:1)

您可以在重写规则中添加环境变量,并在PHP代码中访问它:

保持/poppers/f/.htaccess像这样:

RewriteEngine On
RewriteBase /poppers/f/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) index.php [L,E=URIPART:$1]

这会将每个请求路由到index.php,并将/poppers/f/的相对路径设置为env变量URIPART

现在在index.php内,只需将此值设为:

$_SERVER["REDIRECT_URIPART"]

将显示值:abcdef/123456/xyz/456