You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何在文件夹中精准查找以‘654-’开头的文件?

PHP获取特定前缀文件的实现方法

嘿,这个需求其实很好实现,我给你两种实用的PHP方案,都能精准拿到你要的以654-开头的文件,自动排除像6546-da6sd.png这类不符合前缀的文件:

方法一:用glob函数快速匹配(最简单)

glob函数是PHP专门用来匹配文件路径的工具,语法简单直接,完全能满足你的需求:

// 替换成你的目标文件夹路径(相对/绝对路径都可以)
$targetFolder = './your-folder/';

// 匹配所有以"654-"开头的文件
$matchedFiles = glob($targetFolder . '654-*');

// 遍历输出结果(可选,用来验证是否正确)
foreach ($matchedFiles as $file) {
    // basename()用来只显示文件名,去掉路径部分
    echo basename($file) . PHP_EOL;
}

为什么这个方法可行?

glob的通配符654-*会精确匹配以"654-"开头的文件,像6546-da6sd.png这种开头是6546-的,自然不会被匹配到,完美符合你的要求。而且它会直接返回文件的完整路径(如果你的targetFolder是绝对路径的话),用basename()可以轻松提取纯文件名。

方法二:用scandir手动过滤(更灵活)

如果之后你需要添加更多自定义过滤规则(比如排除特定扩展名、跳过子目录),可以用scandir先获取所有文件,再手动筛选:

$targetFolder = './your-folder/';

// 获取文件夹内的所有条目(包括文件、目录、.和..)
$allItems = scandir($targetFolder);

// 过滤出符合条件的文件
$matchedFiles = array_filter($allItems, function($item) use ($targetFolder) {
    // 跳过.、..和子目录
    if ($item === '.' || $item === '..' || is_dir($targetFolder . $item)) {
        return false;
    }
    // 判断文件名是否以"654-"开头
    // PHP 8.0+推荐用str_starts_with,更直观:
    // return str_starts_with($item, '654-');
    // 兼容低版本PHP用strpos:
    return strpos($item, '654-') === 0;
});

// 把关联数组转成索引数组(可选,方便后续遍历)
$matchedFiles = array_values($matchedFiles);

// 输出结果
foreach ($matchedFiles as $file) {
    echo $file . PHP_EOL;
}

补充小提醒

不管用哪种方法,都要确保PHP对目标文件夹有读取权限,不然会返回空结果哦~如果用相对路径,注意脚本的工作目录是否和目标文件夹对应,用绝对路径会更稳妥。

内容的提问来源于stack exchange,提问作者Vasia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:00:21