如何通过php按修改日期对文件进行排序

2024-04-15

背景 : 我有一个匿名登录 ftp 服务器,ftp_nlist 仅按字母顺序列出文件,我想根据上次修改日期获取文件列表,最近的在前。我尝试了 ftp_exec($conn, "ls -t") 但出现了“权限被拒绝”错误,不知道为什么它不起作用。好吧,我正在使用 php-cli,文件数量有数千个,我只想使用最近的文件。获取原始列表并查找数组元素的日期部分可能会有所帮助,但我希望有简单的方法。当我通过终端命令 ls -t 登录时效果很好。所以想知道为什么 ftp_exec 不起作用。

寻求一个简单的建议。

提前致谢。


如果您只想按上次修改日期对文件进行排序,您可以使用

ftp_nlist($conn, '-t .');

这不会告诉你what不过,每个文件的日期是。

如果您还想获取修改日期,可以使用ftp_rawlist并解析输出。这是我整理的一个简单示例:

$list = ftp_rawlist($ftp, '.');

$results = array();
foreach ($list as $line) {
    list($perms, $links, $user, $group, $size, $d1, $d2, $d3, $name) =
        preg_split('/\s+/', $line, 9);
    $stamp = strtotime(implode(' ', array($d1, $d2, $d3)));
    $results[] = array('name' => $name, 'timestamp' => $stamp);
}

usort($results, function($a, $b) { return $a['timestamp'] - $b['timestamp']; });

在此刻$results包含按上次修改时间升序排序的列表;反转排序函数以获取最近修改的第一种格式的列表。

Note: ftp_rawlist不提供exact修改时间戳,因此此代码可能并不总是准确工作。您还应该验证 FTP 服务器的输出是否符合此算法,并包括一些健全性检查以确保将来保持这种状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过php按修改日期对文件进行排序 的相关文章

  • php 数组用重音符号排序

    我用它来根据姓氏排序 usort fb friends data custom sort function custom sort a b return a last name gt b last name foreach fb frien
  • 在 Laravel 中创建用户表

    我在 laravel 的用户表方面遇到了一些麻烦 我很久以前就已经删除了那些默认表 现在我尝试使用 Auth 但无法注册 因为数据库中没有表 但我也无法创建表php artisan migrate 因为我已经删除了那些迁移表 所以我想再次创
  • 在 PHP 中获取日期和数字工作日

    我正在用 PHP 开发一个应用程序 我需要使用日期和工作日的数字表示 我尝试过以下方法 today date Y m d number date N strtotime today echo Today today weekday numb
  • 如何使用 shell 脚本 ftp 多个文件

    我正在尝试使用 shell 脚本将多个文件从一台计算机传输到另一台计算机 下面是我的脚本 ftp nv lt
  • XPath 直到下一个标签

    与之前在这里问过的其他人类似的问题 但由于我不知道如何应用这些建议 所以我需要一些帮助 我想找到一个 html 文档的节点 其结构如下 摘录 可能有所不同 h2 My title 1 h2 h3 Sub heading h3 p span
  • 静态类属性上的 isset

    class A public static foo 42 class A attribute foo var dump isset class attribute gives bool false 我如何检查这个类中是否存在这个静态属性 U
  • 如何用单引号替换双引号

    我该如何更换 我认为这称为双引号 我认为它称为单引号 使用 PHP str replace text 或重新分配它 text str replace text
  • HTML/PHP if-else 语句

    我正在使用 Bootstrap 创建一个网站 我想输入 if else 语句 但我不知道该怎么做 让我解释 Here is an image of my current HTML snippet 现在我想要的是 如果我通过 An Aussc
  • 在 CodeIgniter 中使用 ajax 时出现 403 禁止错误

    我正在显示我的名字textbox使用 ajax 自动完成 但我的 ajax URL 不起作用 每次都显示在网络选项卡中 403 禁止 我尝试过像这样的ajax URL url baseUrl index php Employee contr
  • 以阿拉伯语显示日期

    这是我的代码 setlocale LC ALL ar echo strftime e b Y strtotime 2011 10 25 Output 25 Sep 2011 为什么不显示阿拉伯日期 我是否错误地使用了 strftime 在这
  • $_FILES 未定义 PHP 上传表单。无法弄清楚[重复]

    这个问题在这里已经有答案了 可能的重复 尝试在 PHP 中使用 FILE 时出现 未定义索引 错误 https stackoverflow com questions 8727947 getting undefined index erro
  • 如何在课外使用$this?

    我们可以使用 this课外 请看下面的例子
  • 仅显示帖子的子类别

    我有一个自定义帖子 我想显示它所属的所有类别 这有两个部分 在页面顶部 我只显示它所属的顶级类别 这就是我的做法 div class type block span class type initial span div
  • php oop 如何使用属性和方法形成类

    我是 php oop 的新手 我对类有一些想法 但我仍然不知道如何在创建的对象中使用它的属性和方法 我需要了解下面报告的代码是否正确 如果不正确我做错了什么 我假设我有一个可以为我做任何事情的课程 我们称之为 Class myClass 现
  • 无法加载 php_curl

    我已经在WindowsXp上安装了php5 2 13 apache2 2 15 将C php添加到PATH ssystem变量中 我无法启用卷曲扩展 我配置了extension dir并删除了 在 php ini 中形成 php curl
  • 获取发送 cURL 请求的用户的 IP 地址

    我想获取使用 php 中的 cURL POST 方法向我的服务器发送请求的用户的 IP 地址 我正在开发一个 Flight API 我将使用 cURL POST 方法获取请求 我必须获取客户端的 IP 地址并验证他的 IP 地址是否可用 如
  • 针对 Woocommerce 中多个产品类别计数的 ajax 添加到购物车的 JS 警报

    在 Woocommerce 中 当达到特定产品类别的购物车中的产品的特定数量时 我尝试显示 JavaScript 甜蜜警报 并在达到二级类别的产品的特定数量时显示另一个警报 商品通过 AJAX 添加到购物车 这就是我想使用 JavaScri
  • 在 Laravel 中使用 PUT/DELETE 有什么价值?

    用于将路由定义为资源Route resource 文档表明 Verb Path Action Route Name GET resource index resource index GET resource create create r
  • php中有指针吗?

    这段代码是什么意思 这就是你在 php 中声明指针的方式吗 this gt entryId entryId PHP 中的变量名称以 开头 因此 entryId 是变量的名称 this是PHP面向对象编程中的一个特殊变量 它是对当前对象的引用
  • 发送 QUERY 数据包时出错。 PID=9565

    我有两个不同的环境开发和生活几乎都是相同的 但上述 标题中 警告仅在开发模式下发生 在此警告之前 我还收到错误消息 允许的内存大小 268435456 字节已耗尽 这仅发生在开发模式下 使用 PHP 版本 5 6 和 mysql 不是 my

随机推荐