Php 服务器路径,减去当前文件夹

Php 服务器路径,减去当前文件夹,php,path,Php,Path,好的 我觉得这太复杂了,有一个更简单的解决办法。我需要获取当前服务器路径$\u server['DOCUMENT\u ROOT'];减去当前文件夹 $full_path = $_SERVER['DOCUMENT_ROOT']; $current_folder = strrchr( $full_path, '/' ); $strlength = strlen( $current_folder ) - 1; $pathlength = strlen( $full_path ); $newlengt

好的

我觉得这太复杂了,有一个更简单的解决办法。我需要获取当前服务器路径$\u server['DOCUMENT\u 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 );
这段代码是有效的,但我认为它可能有点过头了

谢谢,
皮特,你就不能这样做吗?它不是很漂亮,但据我所知,您可以将
附加到路径

$parent =  $_SERVER['DOCUMENT_ROOT'].'/../';

您可能需要检查
$\u服务器['DOCUMENT\u ROOT']
最后有一个目录分隔符,如果您需要添加或不添加它。

您就不能这样做吗?它不是很漂亮,但据我所知,您可以将
附加到路径

$parent =  $_SERVER['DOCUMENT_ROOT'].'/../';
您可能需要检查
$\u服务器['DOCUMENT\u ROOT']
末尾有目录分隔符,如果需要添加或不添加,请尝试:

dirname($_SERVER['DOCUMENT_ROOT']);
在使用路径和文件系统时,PHP提供了所有类型的函数:

尝试:

dirname($_SERVER['DOCUMENT_ROOT']);
在使用路径和文件系统时,PHP提供了所有类型的函数:

请查看以下内容:

$path = $_SERVER['DOCUMENT_ROOT'];
$dirs = explode('\\', $path);
$pathWithoutDir = array_slice($dirs, 0, count($dirs) - 1);
我想那个肮脏的代码会管用的。您还可以更改
$\u服务器['DOCUMENT\u ROOT']
\uuuu DIR\uuuu
,它等于
dirname(\uuuu FILE\uuuu)

编辑:代码已更新。

请查看以下内容:

$path = $_SERVER['DOCUMENT_ROOT'];
$dirs = explode('\\', $path);
$pathWithoutDir = array_slice($dirs, 0, count($dirs) - 1);
我想那个肮脏的代码会管用的。您还可以更改
$\u服务器['DOCUMENT\u ROOT']
\uuuu DIR\uuuu
,它等于
dirname(\uuuu FILE\uuuu)


编辑:代码更新。

$newpath=preg\u replace(“/[^\/]+$/”,“,$”服务器['DOCUMENT\u ROOT'])

$newpath=preg\u replace(“/[^\/]+$/”,“,$”服务器['DOCUMENT\u ROOT'])

使用函数realpath,通过添加/,将文件夹提升一级。/:

$newpath = realpath($_SERVER["DOCUMENT_ROOT"] . "/../"); $newpath=realpath($\u SERVER[“DOCUMENT\u ROOT”]。“//”);
使用函数realpath,通过添加/。/,将文件夹提升一级:

$newpath = realpath($_SERVER["DOCUMENT_ROOT"] . "/../"); $newpath=realpath($\u SERVER[“DOCUMENT\u ROOT”]。“//”);
dirname()
非常方便。
不知道你要走哪条路,给你们两个:

$above_root    = dirname($_SERVER['DOCUMENT_ROOT'])."/";
$above_current = dirname(dirname(__FILE__))."/";
dirname()
非常方便。
不知道你要走哪条路,给你们两个:

$above_root    = dirname($_SERVER['DOCUMENT_ROOT'])."/";
$above_current = dirname(dirname(__FILE__))."/";

用于分割路径的正则表达式?这不是最好的解决方案,你不认为吗?如果我匹配文本,我使用regexp:我发现它比使用子字符串匹配更容易使用,而且在大多数情况下,性能损失是可以忽略的。我很感激其他人可能不同意我的意见。RegeX用于分割路径?这不是最好的解决方案,你不认为吗?如果我匹配文本,我使用regexp:我发现它比使用子字符串匹配更容易使用,而且在大多数情况下,性能损失是可以忽略的。我很感激别人可能不同意我的意见。@up谢谢!它写在这里。dirname(文件)!=$_服务器['DOCUMENT_ROOT']@启动谢谢!它写在这里。dirname(文件)!=$_服务器['DOCUMENT_ROOT']