如何从 php 中的路径中删除前 2 个条目

how to eliminate the first 2 entries from a path in php

我有一个变量显示如下目录的路径:

$dir = uploads/sha256/folder1/subfolder1/subsubfolder1

如何 "cut off" $dir 中的前 2 个目录,使其变为:

$dir = folder1/subfolder1/subsubfolder1

示例代码:

$dir = "uploads/sha256/folder1/subfolder1/subsubfolder1";
$pieces = explode("/", $dir);

echo $pieces[2]; // piece2

这只给我folder1

而且我需要sha256之后的完整路径 所以我实际尝试实现的是这样的:

echo $pieces[>2];

您可以捕获 () 前两个目录之后的所有内容并替换为:

$dir = preg_replace('#[^/]+/[^/]+/(.*)#', '', $dir);

或者你可以分解它,将前两个元素之后的所有元素切片并再次分解它:

$dir = implode('/', array_slice(explode('/', $dir), 2));