【发布时间】:2020-03-10 04:24:29
【问题描述】:
注意:自从创建此线程以来,相关模式已从 PHP 文档中删除。
根据PHP documentation,模式...递归匹配所有子目录,但是当我尝试使用它时,没有文件匹配。
根据文档,glob 自 PHP 5.1 以来没有改变,但如果重要的话,我使用的是 PHP 7.2.24。
目录结构:
.
├── bar
│ └── bar_file
└── foo
├── 1
│ └── foo_1_file
└── foo_file
PHP:
var_dump(glob('./.../*')); // prints array(0) {}
var_dump(glob('./.../foo_file')); // prints array(0) {}
我知道这个问题有一个workaround,但我想知道是否有 PHP 原生解决方案,或者如果没有,为什么 PHP 参考文档有缺陷。
【问题讨论】:
-
我检查了PHP bug tracker,似乎没有什么相关的。另一方面,我没有找到任何具有 ...(三个点)模式的工作示例。
-
不确定这是否只是文档,因为 ... 上方是 [...] - 匹配一组字符中的一个字符。如果第一个字符是 !,则匹配任何不在组中的字符。这意味着它们不是指文字 ...,而只是一些内容。
-
@NigelRen 但如果它是“只是一些内容”,它不会也匹配文件而不仅仅是子目录吗?
-
我只是指出,在另一个例子中, ... 并不意味着文字 ... 而是其他一些内容。它可能只是一个elipsis。
-
@NigelRen 我只是说,它的功能描述“...... - 递归匹配所有子目录。” (以及它被列在特殊字符下的事实)对我来说表明它不能被解释为省略号。