簡體   English   中英

獲取某些目錄和子目錄中所有文件的部分路徑

[英]Get part of path of all files within some directory and subdirectories

我正在使用Illuminate\\Support\\Facades\\File檢索所有文件:

    $files = File::allFiles(base_path('resources/views/emails'));
    foreach($files as $file) {
        $file_name = $file->getBasename('.blade.php');
        $path_info = $file->getPathInfo();

        $template = substr($path_info, strpos($path_info, 'emails/') + 7).'.'.$file_name;
        $template = str_replace('/', '.', $template);
    }

emails目錄中有更多子目錄,其中一些包含另一個目錄。 我想獲取所有文件名,不帶擴展名,但包含存儲文件的子目錄的名稱。我還想從路徑名中省略電子郵件目錄(包括電子郵件本身)之前的所有內容。

示例: resources/views/emails/subfolder_one/subfolder_two/myfile.blade.php

預期輸出: subfolder_one.subfolder_two.myfile

我這樣做的方式有效,但似乎太復雜了。 是否有一個函數可以減少foreach循環的代碼行數?

如果您的文件夾總是從emails開始,您可能會在索引 3 處分解數組和 for 循環的路徑,並將結果與"."連接起來"."

$str = 'resources/views/emails/subfolder_one/subfolder_two/myfile.blade.php';
$str_arr = explode('/', $str);
$template = '';
for ($i = 3; $i < count($str_arr); $i++) {
    $template .= $str_arr[$i] . '.';
}
dd($template);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM