带有搜索字符串的PHP扫描目录

时间:2016-05-31 13:36:57

标签: php

有什么方法可以搜索文件数组以匹配某个字符串吗?

所以我有一个里面有图像的目录,我把它们放在一个变量中 像这样

$images = scandir('directory goes here');

现在我想在图像数组中搜索具有特定名称的图像。 例如,所有名称以' cars_hatchback'。

开头的图像

我已经尝试过使用glob功能,但似乎我很快就会出现。

有没有办法实现这个目标? 提前谢谢!

3 个答案:

答案 0 :(得分:1)

使用preg_grep搜索带有模式的数组:

$images = scandir('directory goes here');
$result = preg_grep ("/^cars_hatchback.*/", $images);

来源:http://php.net/manual/en/function.preg-grep.php

答案 1 :(得分:1)

使用glob功能。

例如,如果你有这样的文件夹结构:

folder
    |----- autopass2.jpg
    |----- autopass3.png
    |----- auto_pass2.jpg
    |----- otherfile.xml

现在只需使用带有星号的glob函数:

$result = glob('folder/autopass*');

结果是:

array
(
    0 => 'folder/autopass2.jpg'
    1 => 'folder/autopass3.png'
)

答案 2 :(得分:1)

通过使用星号作为通配符,

glob可用于查找以特定字符串开头的文件名:

<强> SCANDIR( '汽车');

Array
(
    [0] => .
    [1] => ..
    [2] => cars_convertible1.jpg
    [3] => cars_hatchback1.jpg
    [4] => cars_hatchback2.jpg
)

<强>水珠( '汽车/ cars_hatchback *');

Array
(
    [0] => cars/cars_hatchback1.jpg
    [1] => cars/cars_hatchback2.jpg
)