php glob()if empty返回windows上的数组,linux上没有

Joh*_*lia 5 php apache glob

目前我有:

$files = array_merge(
        glob($path_ . '*.js'),
        glob($path_ . '*.css'));
Run Code Online (Sandbox Code Playgroud)

如果Windows上的目录为空,则返回一个空数组.如果它们在linux上为空,则不返回任何内容.

这会在linux上产生这个错误:警告:array_merge()[function.array-merge]:参数#1不是数组

  • Windows:Apache:2.2.21 PHP:5.3.10
  • Linux/Debian:Apache:2.2.16 PHP:5.3.10

经过一些进一步的研究和测试后,我发现它是PHP中的一个错误:https://bugs.php.net/bug.php?id = 53460

Ben*_*ier 4

来自http://php.net/manual/en/function.glob.php

返回一个包含匹配文件/目录的数组,如果没有文件匹配则返回空数组,如果出错则返回 FALSE。

检查是否glob($path_ . '*.js') === FALSE在linux上。在这种情况下,可能存在权限错误或类似的情况。如果没有错误,它应该是一个空数组,如文档所示。

还要检查您的文件/目录中的情况。Windows 不区分大小写,这可以解释 Windows 和 Linux 之间的差异。