以下を含むファイルusers.txt
があります。
"ID" "Access" ;Expire>>26-08-2013<<
"ID" "Access" ;Expire>>27-08-2013<<
"ID" "Access" ;Expire>>28-08-2013<<
有効期限が現在の日時よりも大きいかどうかを確認したくありません。そうであれば、その行の先頭にセミコロンを追加するか、単にその行を削除します。
そのためにこれまでに書いたコードは次のとおりです。
$files = file('users.txt');
foreach ($files as $line) {
$pattern = '/>>(.*)<</';
preg_match($pattern, $line, $matches);
$expiredate = strtotime($matches[1]);
$currdate = strtotime(date('d-m-Y'));
if ($currdate > $expiredate) {
echo 'access expired... edit/delete the line<br/>';
} else {
echo 'do nothing, its ok -> switching to the next line...<br/>';
}
}
ファイルのすべての行から「有効期限」を取得します。また、現在の日付よりも大きいかどうかもチェックしますが、この時点では、条件を満たす行を編集する方法 (先頭にセミコロンを追加することによって) または削除する方法がわかりません。
助言がありますか?