【问题标题】:PHP - Find latest file based on filename patternPHP - 根据文件名模式查找最新文件
【发布时间】:2018-11-09 11:38:40
【问题描述】:

我有一堆玩家数据。数据以 json 格式存储,文件名模式为 gamerid_date_time_seed.json。例如下面:

8841-2018-05-03-09-56-14-2118-data.json
8841-2018-05-03-10-50-22-1568-data.json
8841-2018-05-04-04-36-51-6081-data.json
8841-2018-05-04-06-56-50-1100-data.json

例如,在第一个文件名中,2018-05-03-09-56-14year-month-date-hour-min-sec 格式。 8841 是玩家 id 和最后 4 位数字,2118 在这种情况下是可以忽略的种子值。

我怎样才能解析这个,以便我只得到一个游戏玩家的最新数据文件? (在本例中为 8841-2018-05-04-06-56-50-1100-data.json)问题是有时玩家可能有多个文件,但同一天。

我不太擅长正则表达式之类的东西,所以我非常感谢这里的一些帮助。

【问题讨论】:

标签: php regex filenames


【解决方案1】:

您可以使用glob 函数来获取文件数组,然后反向排序以获取最新文件作为数组中的第一项。

$gamerid = 8441;
$files = glob("filepath/".$gamerid."-*.json");
rsort($files);
$newestFile = $files[0];

【讨论】:

  • 并且为玩家 ID 使用变量将允许为您需要的任何人获取最新的。
  • 根据@D.Kendall 的建议编辑了我的帖子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
相关资源
最近更新 更多