好的。
认为我这样做太复杂了,并且有一个更简单的解决方案。我需要获取当前服务器路径$ _SERVER ['DOCUMENT_ROOT'];减去当前文件夹。
$full_path = $_SERVER['DOCUMENT_ROOT'];
$current_folder = strrchr( $full_path, '/' );
$strlength = strlen( $current_folder ) - 1;
$pathlength = strlen( $full_path );
$newlength = $pathlength - $strlength;
$newpath = substr( $full_path, 0, $newlength );
此代码有效,但我认为这可能有点过分。
谢谢, 皮特
答案 0 :(得分:3)
dirname()
非常方便。
不知道你要求的路径是什么,要给你们两个:
$above_root = dirname($_SERVER['DOCUMENT_ROOT'])."/";
$above_current = dirname(dirname(__FILE__))."/";
答案 1 :(得分:2)
使用函数realpath并通过添加/../:
将一个文件夹放到更高的位置$newpath = realpath($_SERVER["DOCUMENT_ROOT"] . "/../");
答案 2 :(得分:0)
难道你不能这样做吗?它并不是很漂亮,但就我所知,你可以将..
追加到路径上。
$parent = $_SERVER['DOCUMENT_ROOT'].'/../';
您可能想要检查$_SERVER['DOCUMENT_ROOT'];
最后是否包含目录分隔符,以及是否需要添加目录分隔符。
答案 3 :(得分:0)
尝试:
dirname($_SERVER['DOCUMENT_ROOT']);
PHP在处理路径和文件系统时提供所有类型的功能:http://www.php.net/manual/en/ref.filesystem.php
答案 4 :(得分:0)
看看这个:
$path = $_SERVER['DOCUMENT_ROOT'];
$dirs = explode('\\', $path);
$pathWithoutDir = array_slice($dirs, 0, count($dirs) - 1);
我猜上面的脏代码会起作用。您也可以将$_SERVER['DOCUMENT_ROOT'];
更改为__DIR__
,其等于dirname(__FILE__)
。
编辑:代码更新。
答案 5 :(得分:0)
$ newpath = preg_replace(“/ [^ \ /] + $ /”,“”,$ _SERVER ['DOCUMENT_ROOT']);