PHP glob()函数传入读取txt文件得到的变量时无返回结果问题
问题根因
你遇到的问题有两个核心原因:
- 从txt文件读取的字符串带有肉眼不可见的冗余字符,比如文件末尾的换行符、回车符、首尾空白,echo输出时这些字符不会显示,所以你会误以为和手动填写的内容完全一致,但实际传入glob后会破坏花括号的匹配格式。
- PHP双引号字符串中
{$变量名}的写法是变量边界界定符,你原来的写法会把{当成界定符的一部分,不会作为字面量拼入最终路径,导致glob拿到的路径根本没有花括号结构,GLOB_BRACE标识无法生效。
修复后可直接运行的代码
// 读取文件内容 $file = file_get_contents("C:/xampp/htdocs/gomanga/data/account/Getto/favorites/favorites.txt"); // 清理首尾的空白、换行、回车等不可见字符 $file = trim($file); // 拼接路径时显式拼接花括号,避免和变量界定符混淆 $path = "C:/xampp/htdocs/gomanga/central/{" . $file . "}"; $dire = glob($path, GLOB_BRACE); foreach($dire as $f){ echo $f.'<br>'; }
调试验证方法
如果调整后还是有问题,可以打印拼接后的完整路径和手动写的路径做对比,确认格式完全一致:
// 调试用:输出完整路径 var_dump($path); // 和你手动写的有效路径逐字符对比即可找出差异
内容的提问来源于stack exchange,提问作者FUNDIY
相关产品推荐
相关产品推荐

