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

PHP如何读取指定目录下匹配指定前缀的所有文件内容并输出

解决方案

方案1:使用glob()函数直接匹配目标文件(最优)

glob()原生支持通配符匹配文件名,可以直接筛选出所有符合personalchat*命名规则的文件,无需手动过滤目录内容,代码更简洁:

<?php
// 匹配目录下所有以personalchat开头的文件,返回匹配的文件路径数组
$filePaths = glob('/var/www/html/web/www/chat.support/status/personalchat*');

foreach ($filePaths as $filePath) {
    // 先判断路径是文件,排除匹配到的目录避免报错
    if (is_file($filePath)) {
        // 读取文件内容直接输出
        echo file_get_contents($filePath);
        // 不同文件内容之间可按需加分割线,默认注释
        // echo '<hr>';
    }
}
?>

方案2:改造你现有scandir版本的代码

你之前的代码只输出了文件名,需要额外做3步调整:拼接完整文件路径、过滤匹配命名规则的文件、读取文件内容输出,调整后代码如下:

<?php
$mydir = '/var/www/html/web/www/chat.support/status/';
$myfiles = array_diff(scandir($mydir), array('.', '..'));

foreach($myfiles as $name) {
    // 1. 过滤以personalchat开头的目标文件
    if (str_starts_with($name, 'personalchat')) {
        $fullPath = $mydir . $name;
        // 2. 判断是普通文件再读取
        if (is_file($fullPath)) {
            // 3. 读取内容输出
            echo file_get_contents($fullPath);
            // 不同文件内容之间可按需加分割线,默认注释
            // echo '<hr>';
        }
    }
}
?>

注:如果你的PHP版本低于8.0,不支持str_starts_with函数,可以替换为strpos($name, 'personalchat') === 0实现同样的前缀匹配效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:15:01