正在删除php中的部分路径


Removing part of path in php

我有一个类似于的路径

$path='somefolder/foo/bar/lastdir';

我想删除最后一部分,所以我有:

$path='somefolder/foo/bar';

就像我往上翻了一个文件夹。

我真的是php的新手,也许它只是一个函数,尽管我在任何地方都找不到它。

你可以试试这个(测试并按预期工作):

$path = 'somefolder/foo/haha/lastone';
$parts = explode('/', $path);
array_pop($parts);
$newpath = implode('/', $parts);

CCD_ 1现在将包含CCD_。

使用:

dirname(dirname('somefolder/foo/haha/lastone/somescript.php'));

这个应该返回:

somefolder/foo/haha/

这是未经测试的,但请尝试:

$path_array = explode('/',$path);
array_pop($path_array);
$path = implode('/',$path_array);

如果您当前位于:

somefolder/foo/haha/lastone/somescript.php

并且您想要访问:

somefolder/foo/haha/someotherscript.php

只是类型:

../someotherscript.php

如果最后一部分会有所不同,那么使用regex函数可能是合适的。尝试

$pattern = '#/.*$#U';
$stripped_path = preg_replace($pattern, '', $original_path);

这将删除从最后一个正斜杠开始的原始路径字符串中的所有内容。

您可以使用一个函数,将$path变量()解释为一个数组,然后使用array_pop来去掉最后一个元素。

function path($path) {
    $arrayPath = explode("/", $path);
    $path = array_pop($arrayPath);
    return $path = implode("/", $path);
}

PHP中最短的变体是:

$path = preg_replace('|/[^/]*$|','', $path);

其使用正则表达式。