PHP仅在文档启动时使用会话创建备份

时间:2015-12-04 11:24:46

标签: php json session

我正在尝试创建一个json文件,每次我使用它进入页面。

if(!isset($_SESSION['backup_active']))
 {
    $backup=fopen("backup/".time().".json", "w");
    fwrite($backup, json_encode($list)); fclose($backup);
     $_SESSION['backup_active']=true;
 }

这样做是因为当我进入页面时它会创建备份但是当我删除备份文件并再试一次时它不会创建一个新备份。 在我创建备份文件后,我想调用它并将其放在另一个.json文件中。

session_start();
                if(isset($_SESSION['backup_active']))
                {
                    $fBackup= "backup";
                    $lastFile= end($fBackup);
                    $listFile = file_get_contents($lastFile);
                    file_put_contents('list.json', $listFile); 
                    session_destroy();
                }  

但这似乎不起作用。我使用end()方法获取最后生成的备份文件,然后将其放在list.json文件中。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

为什么这段代码不起作用,在我尝试获取$latest_filename后,我得到一个bool(false)作为var_dump的输出。为什么我会这样做。当我尝试这样的事情时:

 $backupFile = file_get_contents("listbackup.json");
 file_put_contents('list.json', $backupFile);

它可以工作,但是当我在这里尝试这个代码时,它不是为什么?我该如何解决这个问题。

session_start();

if (isset($_SESSION['active'])) {
    $path = "backup";
    $latest_ctime = 0;
    $latest_filename = '';
    $d = dir($path);
    while (false !== ($entry = $d->read())) {
        $filepath = "{$path}/{$entry}";
        if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
            $latest_ctime = filectime($filepath);
            $latest_filename = $entry;
        }
    } * *$latest = file_get_contents($latest_filename);
    file_put_contents('list.json', $latest); * *session_destroy();
}