在php中存储和附加文件

时间:2014-06-23 07:50:07

标签: php

我有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相对应的特定日期,然后适当地附加该日期。 提前致谢

1 个答案:

答案 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)); 
}

你真的应该在这里做一些检查。

  • 那' ap'正被传递给$ _GET数组中的脚本
  • $ last_run数组实际上包含$ app_id occurrence