【问题标题】:PHP wildcards in code displays wildcard character代码中的 PHP 通配符显示通配符
【发布时间】:2025-12-21 12:10:11
【问题描述】:

在运行带有通配符的 php 代码时遇到问题。我在使用 glob 函数时注意到了这一点

x = glob($_SERVER["DOCUMENT_ROOT"]."/images/SCHEMAS/EL/PNG/". "AW" . "???" . ".png", GLOB_NOCHECK);
print_r ($x);

会显示

数组([0] => /var/www/html/images/SCHEMAS/EL/PNG/AW???.png)

而不是像 PATH/AW-01.png 这样以 AW 开头的所有文件的数组

我认为代码没有问题,但更多的是在我们的 Intranet Web 服务器的设置中,全新安装了 Apache 2.2 和 PHP 5.3。

代码适用于我的 XAMPP 环境以及 Web 托管,但不适用于 Intranet Web 服务器。 我尝试更改 PHP.ini 并使用 httpd.conf 但没有成功。这可能真的很容易,但在互联网上搜索了几天并没有帮助。

这是我在 s-overflow 上的第一篇文章,如果样式不符合文章推荐,请见谅。

【问题讨论】:

  • 感谢您快速回复损坏。这样做了,这实际上是我开始的方式,但结果是一样的。浏览器中显示“AW*.PNG”

标签: php apache wildcard


【解决方案1】:

GLOB_NOCHECK 表示“如果没有找到匹配项,则返回搜索模式”。您的 Web 服务器进程可能无权访问相关文件。

【讨论】:

  • 感谢史蒂夫,我可以单独显示文件。代码是为可变数量的图像创建选项卡的一部分。当我直接定位文件时,图像显示得很好,所以我认为访问文件应该没问题
【解决方案2】:

也许它会帮助某人。问题出在 $_SERVER["DOCUMENT_ROOT"] 的路径声明中 避免这种情况并提供相对路径在所有服务器(XAMMP、ISP、INTRANET)上都有效

以前只有 XAMMP 接受该声明。

谢谢。

【讨论】: