【发布时间】:2010-03-12 02:51:08
【问题描述】:
我有这样的路径:
parent/child/reply
如何使用 PHP 去除路径的最后一部分,使其看起来像这样:
parent/child
【问题讨论】:
标签: php
我有这样的路径:
parent/child/reply
如何使用 PHP 去除路径的最后一部分,使其看起来像这样:
parent/child
【问题讨论】:
标签: php
dirname($path)
【讨论】:
dirname()。您可以根据需要多次使用它
【讨论】:
【讨论】:
preg_replace("/\/\w+$/i","",__DIR__);
# Note you may also need to add .DIRECTORY_SEPARATOR at the end.
【讨论】:
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;
}
【讨论】:
dirname 的for 循环?简单吗?
更简单,如果你有类似的路径
$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
就是这样。
【讨论】: