Laravel中如何获取不带完整路径的目录名称?
解决方案
你可以通过以下几种方式快速提取不带路径前缀的文件夹名称:
方法一:使用PHP原生basename函数
basename()是PHP内置函数,直接返回路径中的最后一个组件,刚好能满足需求,代码简洁高效:
$langPaths = File::directories('resources/lang/'); $langs = array_map('basename', $langPaths);
执行后$langs会得到纯文件夹名称的数组:
[ "da", "de-CH", "de-ES", "en", "en-AE", "en-ES", "en-GB", "en-PT", "es", "es-PE", "fi", "fr", "fr-CH", "fr-ES", "it-CH", "nl", "no", "pt", "sk", "sv" ]
方法二:使用Laravel字符串辅助函数Str::after
如果你习惯用Laravel的辅助工具,可以结合集合和Str::after来截取前缀后的内容:
use Illuminate\Support\Str; $langs = collect(File::directories('resources/lang/')) ->map(fn($path) => Str::after($path, 'resources/lang/')) ->toArray();
这个方法明确指定要移除的前缀字符串,适合前缀固定的场景。
内容的提问来源于stack exchange,提问作者TheQuietOne
相关产品推荐
相关产品推荐

