我有app_id和当前日期。实际上,如果当前日期和存储日期大于4,我想更新我的数据库。 我这样做:
$app_id = $_GET['ap'];
$current_date=date('d');
$a = array($app_id => $current_date);
$fp = fopen("time.txt",'r');
$last_run = unserialize(file_get_contents("time.txt"))[$app_id];
if(abs($last_run-$current_date) > 2)
{
$fp = fopen("time.txt", 'w');
fwrite($fp, serialize($a));
}
但问题在于,当我切换应用程序时,它将再次更新数据库,因为我使用的是写入模式,而不是写入文本文件。我可以使用追加模式。那么我如何搜索存储在文件中的数组并获得与该app_id相对应的特定日期,然后适当地附加该日期。 提前致谢
答案 0 :(得分:0)
您需要读取文件并将整个数组反序列化为变量,然后您可以测试和更新数组的任何部分,然后将整个数组写回文件。
此外,file_get_contents()
和file_put_contents()
不需要您打开文件句柄,而是在内部完成所有操作。
$app_id = $_GET['ap'];
$current_date = date('d');
$last_run = unserialize(file_get_contents("time.txt"));
if(abs($last_run[$app_id] - $current_date ) > 2 ) {
// change the last run date for this app
$last_run[$app_id] = $current_date;
file_put_contents('time.txt', serialize($last_run));
}
你真的应该在这里做一些检查。