我有一个完整的路径,我想删除它的某些级别.所以,例如,
/home/john/smith/web/test/testing/nothing/
我想摆脱4个级别,所以我得到了
/test/testing/nothing/
做这件事会有什么好处?
谢谢
一个简单的解决方案是将路径切割成多个部分,然后再操作数组,然后再将其重新粘贴在一起:
join("/", array_slice(explode("/", $path), 5));
当然,如果要删除该特定路径,还可以使用正则表达式:
preg_replace('~^/home/john/smith/web/~', '', $path);
但是有一个建议.如果您的应用程序经常使用路径,那么创建一个表示路径的类可能是个好主意,以便封装逻辑,而不是在整个地方进行大量的字符串操作.如果您混合绝对和相对路径,这尤其是个好主意.