【问题标题】:PHP How to remove last part of a pathPHP如何删除路径的最后一部分
【发布时间】:2010-03-12 02:51:08
【问题描述】:

我有这样的路径:

parent/child/reply

如何使用 PHP 去除路径的最后一部分,使其看起来像这样:

parent/child

【问题讨论】:

    标签: php


    【解决方案1】:

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        【讨论】:

          【解决方案4】:
              preg_replace("/\/\w+$/i","",__DIR__);
               # Note you may also need to add .DIRECTORY_SEPARATOR at the end.
          

          【讨论】:

            【解决方案5】:

            Here' 是一个删除 URL 的最后 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;
            }
            

            【讨论】:

            • 真的吗?正则表达式和递归?为什么不使用dirnamefor 循环?简单吗?
            【解决方案6】:

            更简单,如果你有类似的路径

            $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
            

            就是这样。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-22
              • 2010-11-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多