かなり前に、ユーザーがファイルを私の Web サイトにアップロードするときのファイル名のフォーマット方法を変更することにしました (これは素晴らしいアイデアでした! )。ファイル名に UNIX_Timestamp を含めるようにしました。データベースが消去され、ファイル名の構造が大幅に変更されました。現在、ファイル名から有効なタイムスタンプを復元しようとしていますが、これまでのところ半分しか復元できていません。
事前に、ファイル名を次のように構成しました。
dcd1322318879.png - UNIX タイムスタンプが先頭に追加された文字。
次に、人々がログインを開始できるようにし、ファイル名をより人間に優しいものにしました。現在、彼らは次のように読んでいます。
username-09092012-183422.jpeg ここで、username はログインしているユーザー名です。私が今抱えている問題は、まず、以前のファイル名(ユーザーデータと人間に優しい日付なし)の正規表現がひどいという事実です。私のコードは次のとおりでした:
$newDate = preg_replace("/[^0-9]/","", $data['name']);
ただし、ユーザー名に数字を含めることができるため、現在は明らかに機能しません。したがって、その数字は日付の最終的な数字にも含まれます。
とにかくこの問題を解決できるかどうか疑問に思っています。ハイフン(-)を追加したという事実は、セパレータとして使用できるので便利だと思いますが、どこから始めればよいかわかりません。日付と時刻を含むファイル名の最後の 2 つの部分を取得するだけでよいので、それらを UNIX タイムスタンプに変換できます。
どんな助けでも大歓迎です