Php glob()认为符号链接是一个文件夹?

Php glob()认为符号链接是一个文件夹?,php,Php,我在PHP的glob()函数中发现了一个奇怪的现象,我想知道为什么会发生这种情况 假设我有一个包含以下内容的文件夹X: a.html b.html 现在我有一个文件夹Y,其中包含一个符号链接: a.html b.html -> ../X/b.html 当我运行以下PHP命令时: glob('Y/*/'); // list all folders in Y 我得到一个包含“Y/b.html”的数组,但我无法解释,因为b.html似乎不适合掩码*/ 为什么? 更新 我的系统是用PHP7.

我在PHP的
glob()
函数中发现了一个奇怪的现象,我想知道为什么会发生这种情况

假设我有一个包含以下内容的文件夹X:

a.html
b.html
现在我有一个文件夹Y,其中包含一个符号链接:

a.html
b.html -> ../X/b.html
当我运行以下PHP命令时:

glob('Y/*/'); // list all folders in Y
我得到一个包含“Y/b.html”的数组,但我无法解释,因为
b.html
似乎不适合掩码
*/
为什么?

更新

我的系统是用PHP7.0.33开发的Debian系统,所有软件包都是最新的

以下是整个复制过程:

[23:09]root@ras3:/tmp/test$ mkdir X
[23:09]root@ras3:/tmp/test$ mkdir Y
[23:09]root@ras3:/tmp/test$ touch X/a.html
[23:09]root@ras3:/tmp/test$ touch X/b.html
[23:09]root@ras3:/tmp/test$ touch Y/a.html
[23:09]root@ras3:/tmp/test$ cd Y
[23:09]root@ras3:/tmp/test/Y$ ln -s ../X/b.html
[23:09]root@ras3:/tmp/test/Y$ cd ..
[23:09]root@ras3:/tmp/test$ php -a
Interactive mode enabled

php > var_dump(glob('Y/*/'));
array(1) {
  [0]=>
  string(8) "Y/b.html"
}
php >
<130> [23:10]root@ras3:/tmp/test$ php -v
PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies
[23:10]root@ras3:/tmp/test$ uname -a
Linux ras3 4.14.87-v7+ #1178 SMP Tue Dec 11 14:47:38 GMT 2018 armv7l GNU/Linux
[23:09]root@ras3:/tmp/test$mkdir X
[23:09]root@ras3:/tmp/test$mkdir Y
[23:09]root@ras3:/tmp/test$touch X/a.html
[23:09]root@ras3:/tmp/test$touch X/b.html
[23:09]root@ras3:/tmp/test$touch Y/a.html
[23:09]root@ras3:/tmp/test$cd Y
[23:09]root@ras3:/tmp/test/Y$ln-s../X/b.html
[23:09]root@ras3:/tmp/test/Y$cd。。
[23:09]root@ras3:/tmp/test$php-a
交互式模式已启用
php>var_dump(glob('Y/*/');
阵列(1){
[0]=>
字符串(8)“Y/b.html”
}
php>
[23:10]root@ras3:/tmp/test$php-v
PHP 7.0.33-0+deb9u3(cli)(构建时间:2019年3月8日10:01:24)(新南威尔士州)
版权所有(c)1997-2017 PHP集团
Zend Engine v3.0.0版权所有(c)1998-2017 Zend Technologies
Zend OPcache v7.0.33-0+deb9u3版权所有(c)1999-2017,由Zend Technologies提供
[23:10]root@ras3:/tmp/test$uname-a
Linux ras3 4.14.87-v7+#1178 SMP周二12月11日14:47:38 GMT 2018 armv7l GNU/Linux

您应该使用
GLOB_ONLYDIR
标志来防止这种情况,如果您只是想获取directoriesCan't reproduction,您能告诉我们您使用的php版本和操作系统吗?我也无法在Mac OS PHP7.3.0上复制。谢谢您的回答。我的系统是用PHP7.0.33开发的Debian系统,所有软件包都是最新的。我可以在两个系统上复制它(一个x64,一个ARM)
GLOB_ONLYDIR
有效!您应该使用
GLOB_ONLYDIR
标志来防止出现这种情况,如果您只是想获取directoriesCan't reproduction,您能告诉我们您使用的php版本和操作系统吗?我也无法在Mac OS PHP7.3.0上复制它。谢谢您的回答。我的系统是用PHP7.0.33开发的Debian系统,所有软件包都是最新的。我可以在两个系统上复制它(一个x64,一个ARM)
GLOB_ONLYDIR
有效!