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

PHP glob函数读取图片路径无返回 同路径其他文件运行正常

排查方向与解决方法

1. 优先排查当前工作目录差异

这是同目录文件调用相同逻辑结果不一致的最常见原因:
相对路径是基于PHP运行时的当前工作目录解析,而非脚本文件本身所在目录。如果upload-files.php是被其他上层文件引入、或者通过URL重写规则路由访问,它的运行时工作目录会和直接访问的abc.php不同。
验证方法:在两个文件中都加入以下代码,对比输出结果:

var_dump(getcwd());

如果输出不一致,直接用脚本所在目录常量__DIR__拼接绝对路径即可解决:

$onlyImages = glob(__DIR__ . "/datasets/777/*.{png,jpeg,jpg,bmp}", GLOB_BRACE);

2. 检查命名空间冲突

如果upload-files.php文件开头有namespace xxx;的命名空间声明,直接调用glob()会优先匹配当前命名空间下的自定义同名函数,而非PHP内置的全局glob函数。
解决方法:调用时加反斜杠前缀指定调用全局函数:

$onlyImages = \glob(__DIR__ . "/datasets/777/*.{png,jpeg,jpg,bmp}", GLOB_BRACE);

3. 排除参数兼容问题

可以先去掉GLOB_BRACE参数测试单后缀匹配是否正常,排除当前运行环境下该参数生效异常的问题:

// 先测试单后缀能否正常读取
var_dump(glob(__DIR__ . "/datasets/777/*.png"));

4. 查看详细错误提示

在upload-files.php头部开启错误显示,运行后查看是否有路径权限、open_basedir限制类的警告:

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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:36:04