在名称中包含子字符串的目录中获取文件名数组

时间:2017-08-26 04:12:47

标签: php directory filenames

我有一个包含一些文件名的目录。我想获取该目录中包含substring的所有文件。

MyDir =>
    - Hello12.pdf
    - ABC.pdf
    - hello.pdf
    - JohnDoe.pdf
    - hello33.pdf

我想给'Hello'并获取包含Hello及其扩展名的所有文件名;得到像['Hello12.pdf', 'hello.pdf, 'hello33.pdf']

这样的结果
$dir = public_path('files/MyDir');

如何在包含' Hello'的数组中获取文件? MyDir目录中的文件名中的子字符串?

从这种方式出发是一个好方法吗?

foreach(glob($dir . '/*.pdf') as $filename){
     var_dump($filename);
}

2 个答案:

答案 0 :(得分:1)

您可以使用/方法获取所有文件名。然后迭代它并找到匹配

scandir

答案 1 :(得分:1)

首先你需要扫描dir,然后找到字符串并将它们添加到数组

<?php
$i = scandir(__DIR__ . '/files/MyDir', 1);
$array = [];
foreach ($i as $x) {
    if (strpos($x, 'hello') !== FALSE) {
        $array[] = $x;
    }
}
echo var_export($array, true);