我在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
似乎不适合面具*/
为什么?
更新
我的系统是带有PHP 7.0.33的Debian Stretch,所有软件包都是最新的稳定版。
这是整个复制过程:
[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