5

目前我有:

$files = array_merge(
        glob($path_ . '*.js'),
        glob($path_ . '*.css'));

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

这会在 linux 上产生此错误:Warning: array_merge() [function.array-merge]: Argument #1 is not an array

  • 视窗:阿帕奇: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

4

1 回答 1

4

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

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

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

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

于 2012-04-06T11:57:38.293 回答