在找到给定目录之前如何删除部分路径?
How to remove part of path until a given directory is found?
我的路径与此模板类似:
`/dir1/dir2/dirN/dirNplus1/dirNplus2/`
以及演示此模板的示例:
`/var/www/sei/modules/module1/`
我希望能够有一个功能,我可以输入完整路径和特定目录,然后只进入 return 路径的右侧部分,删除包括指定目录在内的左侧部分在参数中。
在给出的示例中,如果我使用:
`function('/var/www/sei/modules/module1/', 'sei')`
那么我想得到的结果是:
`/modules/module1/`
关于如何实现这一点有什么想法吗?
正如@ADyson 所建议的,我在下面编写了这段代码:
const DIRETORIO_SEI = 'sei';
private static $caminho;
public static function getCaminhoModulo($append = '') {
if (self::$caminho != null) {
return self::$caminho;
}
$diretorio = explode('/', realpath(__DIR__.'/../../../'));
$caminho = '';
$incluir = false;
for ($i = 0; $i < count($diretorio); $i++) {
if ($incluir) {
$caminho = $caminho . $diretorio[$i] . '/';
}
if ($diretorio[$i] == self::DIRETORIO_SEI) {
$incluir = true;
}
}
self::$caminho = $caminho;
return $caminho.$append;
}
我的路径与此模板类似:
`/dir1/dir2/dirN/dirNplus1/dirNplus2/`
以及演示此模板的示例:
`/var/www/sei/modules/module1/`
我希望能够有一个功能,我可以输入完整路径和特定目录,然后只进入 return 路径的右侧部分,删除包括指定目录在内的左侧部分在参数中。
在给出的示例中,如果我使用:
`function('/var/www/sei/modules/module1/', 'sei')`
那么我想得到的结果是:
`/modules/module1/`
关于如何实现这一点有什么想法吗?
正如@ADyson 所建议的,我在下面编写了这段代码:
const DIRETORIO_SEI = 'sei';
private static $caminho;
public static function getCaminhoModulo($append = '') {
if (self::$caminho != null) {
return self::$caminho;
}
$diretorio = explode('/', realpath(__DIR__.'/../../../'));
$caminho = '';
$incluir = false;
for ($i = 0; $i < count($diretorio); $i++) {
if ($incluir) {
$caminho = $caminho . $diretorio[$i] . '/';
}
if ($diretorio[$i] == self::DIRETORIO_SEI) {
$incluir = true;
}
}
self::$caminho = $caminho;
return $caminho.$append;
}