PHP如何删除路径的最后部分

时间:2010-03-12 02:51:09

标签: php

我有这样的道路:

parent/child/reply

如何使用PHP删除路径的最后部分,使其如下所示:

parent/child

谢谢!

6 个答案:

答案 0 :(得分:63)

答案 1 :(得分:25)

dirname()。您可以根据需要多次使用

  • 获取父/子 - dirname('parent / child / reply')
  • 获取parent - dirname(dirname('parent / child / reply'))

答案 2 :(得分:4)

答案 3 :(得分:3)

    preg_replace("/\/\w+$/i","",__DIR__);
     # Note you may also need to add .DIRECTORY_SEPARATOR at the end.

答案 4 :(得分:2)

此处'是删除网址的最后 n 部分的功能:

/**
 * remove the last `$level` of directories from a path
 * example 'aaa/bbb/ccc' remove 2 levels will return aaa/
 *
 * @param $path
 * @param $level
 *
 * @return mixed
 */
public function removeLastDir($path, $level)
{
    if (is_int($level) && $level > 0) {
        $path = preg_replace('#\/[^/]*$#', '', $path);

        return $this->removeLastDir($path, (int)$level - 1);
    }

    return $path;
}

答案 5 :(得分:0)

更简单,如果你有这样的路径

$path="/p1/p2/.../pN"

你可以使用'dirname()'函数

echo dirname($path,L)

其中“L”是向上的级别。对于 L=1,是当前文件夹,L=2 是“../pN-1”,对于 L=3,我们有“../pN-2”e 等等...

例如,你的路径是'$path="/etc/php/7.4/apache2/"',L=2,所以

echo dirname($path,2)

会输出

/etc/php/7.4/

对于 L=3

/etc/php

就是这样。