【问题标题】:How do you scan the directory case insensitive?你如何扫描不区分大小写的目录?
【发布时间】:2016-11-17 21:01:16
【问题描述】:

我想从目录中获取文件。我不知道它是大写还是小写。 php中如何扫描不区分大小写的目录?

strtolower(scandir($directory, SCANDIR_SORT_ASCENDING)); ???

【问题讨论】:

  • 但是 a!=A 比 z=A 多

标签: php


【解决方案1】:

scandir() 返回一个数组,strtolower() 仅适用于字符串。您需要使用array_map() 对返回的所有名称运行该函数:

$filenames = array_map('strtolower', scandir($directory));

由于scandir 进行的排序区分大小写,因此您应该在检索到$filenames 后对其进行排序。

sort($filenames);

【讨论】:

  • 非常感谢。我对php了解不多。而且我几乎无法调试它。所以也很难看出我做错了什么。
  • 我试试这个 $result = array_map('strtolower', scandir($directory, SCANDIR_SORT_ASCENDING));这也有效。
  • 这将对名称进行区分大小写的排序。
【解决方案2】:

这个保留数组中的大小写,但不区分大小写。

$filenames = scandir($directory, SCANDIR_SORT_NONE);
natcasesort($filenames);

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2011-10-14
    • 2023-03-19
    • 2019-10-12
    相关资源
    最近更新 更多