不久前,当用户将文件上传到我的网站时,我决定更改文件名的格式(这是一个好主意!),以在文件名中包含 UNIX_Timestamp,不幸的是,在与我的文件相关联的时间戳之后,这证明非常有用数据库被擦除,文件名结构发生了很大变化,我目前正在尝试从文件名中恢复有效的时间戳,但是到目前为止我只能恢复一半。
之前,我将文件名结构化为:
dcd1322318879.png - 以 unix 时间戳开头的字母。
然后,我允许人们开始登录并使文件名更加人性化,他们现在如下所示;
username-09092012-183422.jpeg 其中 username 是登录的用户名。我现在遇到的问题是,首先,我对正则表达式很糟糕,对于以前的文件名(没有用户数据和人类友好的日期),我的代码是:
$newDate = preg_replace("/[^0-9]/","", $data['name']);
但是显然现在这不起作用,因为用户名可以包含数字,因此该数字也将包含在日期的最终数字中。
我目前想知道是否无论如何我可以解决这个问题,我想我添加连字符(-)的事实会很有用,因为我可以将它用作分隔符,但是我不知道从哪里开始。我只需要获取文件名的最后两部分,其中包含日期和时间,这样我就可以将它们转换为 unix 时间戳。
任何帮助是极大的赞赏