gpt4 book ai didi

php - Glob 模式不匹配任何内容

转载 作者:行者123 更新时间:2023-12-03 11:22:50 25 4
gpt4 key购买 nike

注意:自从创建此线程以来,相关模式已从 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 native 解决方案,或者如果没有,为什么 PHP 引用文档有缺陷。

最佳答案

文档不完整甚至不正确。截至 2019 年 11 月,PHP 中没有明确支持递归 glob 语法的代码,底层操作系统库也不太可能支持它。

  • IEEE 1003.1 中没有递归 glob 语法
  • PHP UNIX implementation代表GLOB(3)来自标准 C 库。在 Linux 上,这很可能是不支持递归 syntax 的 glibc。 .
  • PHP Windows implementation不支持目录递归
  • PHP test suite 中没有任何 glob 测试包括一个涵盖三点 (...) 语法的测试。
  • 根据the change的commit message将 glob 模式语法引入 PHP 文档,特殊字符列表基于 djgpp libc 库支持的字符。 djgpp manpage指出三点语法是对旧 VMS 功能的致敬。

    ... Matches all the subdirectories, recursively (VMS aficionados, rejoice!).



  • 所有这些都有力地证明了文档中列出的递归语法将不起作用,除非 PHP 在支持它的平台上运行,例如DOS 或旧 Windows 上的 DJGPP。

    关于php - Glob 模式不匹配任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58852914/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com