我有这样的道路:
parent/child/reply
如何使用PHP删除路径的最后部分,使其如下所示:
parent/child
谢谢!
答案 0 :(得分:63)
dirname($path)
答案 1 :(得分:25)
dirname()
。您可以根据需要多次使用
答案 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
就是这样。