. */ // Rimozione delle limitazioni sull'esecuzione set_time_limit(0); ignore_user_abort(true); $skip_permissions = true; include_once __DIR__.'/../../core.php'; $backup = null; // Cartella di backup specifica $file = null; // File di backup del database // Ricerca dell'ultimo backup (idealmente versione 2.4.16) if (empty($file) && empty($backup)) { $backups = Backup::getList(); $backups = array_reverse($backups); } if (empty($file)) { $count = count($backups); for ($i = 0; $i < $count; ++$i) { $backup = $backups[$i]; // Individuazione del database nel backup if (string_ends_with($backup, '.zip')) { $zip = new ZipArchive(); $zip->open($backup); $version = $zip->getFromName('VERSION'); if ($version == '2.4.17') { continue; } $contents = $zip->getFromName('database.sql'); // File temporaneo $file = DIRECTORY_SEPARATOR. trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR). DIRECTORY_SEPARATOR. ltrim('database.sql', DIRECTORY_SEPARATOR); file_put_contents($file, $contents); register_shutdown_function(function () use ($file) { unlink($file); }); } else { $version = file_get_contents($backup.'/VERSION'); if ($version == '2.4.17') { continue; } $file = $backup.'/database.sql'; } } } if (empty($file)) { echo 'Impossibile procedere'; return; } // Lettura delle query $queries = readSQLFile($file, ';'); $count = count($queries); // Individuazione del dump di co_movimenti $query = null; for ($i = 0; $i < $count; ++$i) { if (string_starts_with($queries[$i], 'INSERT INTO `co_movimenti`')) { $query = $queries[$i]; } } if (empty($query)) { echo 'Impossibile procedere'; return; } // Lettura dei contenuti $values = explode('VALUES', (string) $query, 2)[1]; $values = explode('),', $values); // Generazione delle query per il recupero delle date per la Prima Nota $results = []; foreach ($values as $row) { $row = substr(trim($row), 1); $campi = explode(',', $row); $id = $campi[0]; $data = $campi[2]; $is_primanota = $campi[12]; if (!empty($is_primanota)) { $results[] = 'UPDATE `co_movimenti` SET `data` = '.$data.' WHERE `id` = '.prepare($id).';'; } } echo implode("\n", $results);