// Brisanje pojedinacnog autotesta $json = json_decode(file_get_contents($fileData), true); $brATova = count($json["test_specifications"]); $id = getIntVar("id"); // Potrebno saznati redni broj autotesta sa datim id-em $i = 0; $k = 1; while ($k <= $brATova) { if ($json["test_specifications"][$k - 1]["id"] == $id) { $i = $k; break; } $k++; } if ($i == 0) { ispisGreske("Nije pronađen autotest sa id-em: {$id}"); zavrsi(); } $i--; // Slijedi izbacivanje AT-a iz json-a, nakon toga modifikovati $data for ($k = $i; $k < $brATova - 1; $k++) { $json["test_specifications"][$k] = $json["test_specifications"][$k + 1]; $json["test_specifications"][$k]["id"] = getNewId(); } $brATova--; array_splice($json["test_specifications"], $brATova); // Izbacimo zadnji element saveJson($fileData, $json); print "Brisanje izvršeno!"; admin_log("delete single at, file {$fileData} (mod={$mod})"); } else {
function getNewId() { global $fileLastId; if ($fileLastId == "") { ispisGreske("Naziv fajla u funkciji getNewId() ne može biti prazan string."); zavrsi(); } if (!($fw = fopen($fileLastId, "c+"))) { ispisGreske("Problem sa otvaranjem fajla <{$fileLastId}>."); zavrsi(); } if (flock($fw, LOCK_EX)) { rewind($fw); // Vrati se na pocetak fajla, spreman za citanje $id = intval(trim(fgets($fw))); $id = $id >= PHP_INT_MAX ? 1 : $id + 1; ftruncate($fw, 0); // Pobriše sadržaj fajla rewind($fw); // Kursor na pocetak fajla ponovo // Treba upisati novi sadržaj fwrite($fw, $id); fflush($fw); flock($fw, LOCK_UN); fclose($fw); } return $id; }