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

PHP中如何通过通配符创建匹配指定前缀的文件名变量

PHP中如何通过通配符创建匹配指定前缀的文件名变量

嘿,我完全懂你碰到的问题啦——直接把带通配符的字符串赋值给变量,PHP可不会自动帮你定位到真实存在的文件哦!咱们得用PHP专门的文件匹配工具来搞定这个需求。

核心解决方法:用glob()函数匹配文件

PHP的glob()函数就是专门用来根据通配符规则查找文件路径的,完美契合你的需求:

  • 如果你要匹配所有以TEST_REQUEST开头的.xml文件,可以这么写:
// 执行通配符匹配,返回符合条件的文件路径数组
$matchingFiles = glob('TEST_REQUEST*.xml');

// 因为可能有多个匹配文件,先判断是否找到结果
if (!empty($matchingFiles)) {
    // 取第一个匹配到的文件(如果确定只有一个的话)
    $file = $matchingFiles[0];
    // 接下来就可以用$file做后续操作啦,比如加载文件内容
} else {
    echo "没有找到符合前缀的XML文件!";
}
  • 要是你需要匹配TEST_REQUEST.*.xml这种格式(比如中间带任意字符的,像TEST_REQUEST.20240520.xml),直接把通配符规则传给glob()就行:
$matchingFiles = glob('TEST_REQUEST.*.xml');

为什么之前的写法会报错?

你之前直接把'TEST_REQUEST*.xml'赋值给$file,PHP只会把它当成一个普通的字符串,不会自动去磁盘上查找匹配的文件。当你用这个字符串去加载外部实体时,系统找不到名为TEST_REQUEST*.xml的真实文件,自然就抛出“failed to load external entity”的错误啦。

备注:内容来源于stack exchange,提问作者Pat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 10:24:31