我有一条像这样的长路径 - /home/user/www/domain.net/public_html/system/dir/file.php
,我想裁剪它以获得类似 - /system/dir/file.php
.
现在我正在使用这段代码:
$filename = str_replace(array('\\', '/'), DIRECTORY_SEPARATOR, $filename);
$filename = join(DIRECTORY_SEPARATOR, array_slice(explode(DIRECTORY_SEPARATOR, $filename), -3, 3));
它有效,但我认为有更好的解决方案..有人知道吗?
提前致谢。
最佳答案
您可以使用正则表达式。请参阅此示例:
$sFileName = '/home/user/www/domain.net/public_html/system/dir/file.php';
$iCropCount = 3;
$sResult = preg_replace('#.*?((\/[^\/]+){'.$iCropCount.'})$#', '$1', $sFileName));
//var_dump($sResult);
省略了 DIRECTORY_SEPARATOR
的操作(因为上面示例的主要含义不在其中)
关于PHP:裁剪文件/目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18224611/