如何从 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));
我有一个变量显示如下目录的路径:
$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));