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

PHP通过glob获取.vic文件后file_get_contents无法读取内容求助

解决PHP中glob获取.vic文件后无法用file_get_contents读取的问题

让我来帮你排查这个问题,看起来核心问题出在路径匹配和文件读取的细节上,我们一步步拆解解决:

1. 先确认glob的路径是否正确

你当前用的glob('*.vic')是基于PHP脚本所在的当前目录来查找文件的,而你后续用$_SERVER['DOCUMENT_ROOT'].'/server/main/'来拼接读取路径,这两个路径很可能不一致!

举个例子:如果你的PHP脚本放在/var/www/html/(也就是DOCUMENT_ROOT),那glob('*.vic')找的是/var/www/html/*.vic,但你的目标文件实际在/var/www/html/server/main/,自然找不到任何文件,foreach循环根本不会执行,也就没有内容输出。

解决方法:给glob传入目标目录的绝对路径,让它直接去正确的目录找文件:

$targetDir = $_SERVER['DOCUMENT_ROOT'] . '/server/main/';
$fileList = glob($targetDir . '*.vic');

2. 验证glob是否真的找到了文件

在foreach循环前加一行调试代码,确认$fileList里是否有内容:

var_dump($fileList);

如果输出是空数组array(0) { },那就说明第一步的路径问题还没解决,需要再次核对$targetDir的正确性。

3. 检查文件权限与可读性

即使路径正确,PHP进程可能没有读取这些.vic文件的权限。你可以在循环里添加可读性检查:

foreach($fileList as $filename) {
    if(!is_readable($filename)){
        echo "无法读取文件:" . $filename . "<br>";
        continue;
    }
    echo file_get_contents($filename) . "\r\n";
}

4. 开启错误报告,获取具体报错信息

你提到有"无法访问"的提示,但没看到具体错误。在脚本开头添加以下代码,强制显示所有错误,这会帮你快速定位问题(比如文件不存在、权限不足等):

error_reporting(E_ALL);
ini_set('display_errors', 1);

修正后的完整示例代码

<?php
// 开启错误报告,方便排查问题
error_reporting(E_ALL);
ini_set('display_errors', 1);

$targetDir = $_SERVER['DOCUMENT_ROOT'] . '/server/main/';
// 输出目标目录,确认路径正确
echo "目标目录:" . $targetDir . "<br>";

// 用绝对路径调用glob,确保找到目标目录下的.vic文件
$fileList = glob($targetDir . '*.vic');

// 检查是否找到文件
if(empty($fileList)){
    echo "目标目录下没有找到.vic文件!";
} else {
    foreach($fileList as $filename) {
        // 尝试读取文件
        $content = file_get_contents($filename);
        if($content === false){
            echo "读取文件失败:" . $filename . "<br>";
        } else {
            echo "文件内容:<br>" . $content . "<br><hr>";
        }
    }
}
?>

这个修正版本做了这些优化:

  • 用绝对路径调用glob,确保找到正确目录下的文件
  • 增加了多环节的错误检查和提示
  • 直接使用glob返回的绝对路径读取文件,避免二次拼接路径出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:06:57