&1'); if ($output === null || empty($output)) { return "Error"; } $parts = explode(' - ', $output); if (count($parts) >= 2) { return cleanVersion($parts[1]); } return "Error"; } function getLatestVersion() { $url = "https://github.com/Thaolga/openwrt-nekobox/releases"; $output = shell_exec("wget -qO- $url"); if ($output === null || empty($output)) { return "Error"; } preg_match('/\/releases\/tag\/([\d\.]+)/', $output, $matches); if (isset($matches[1])) { return cleanVersion($matches[1]); } return "Error"; } function cleanVersion($version) { $version = explode('-', $version)[0]; return preg_replace('/[^0-9\.]/', '', $version); } $currentVersion = getCurrentVersion(); $latestVersion = getLatestVersion(); if ($currentVersion === "Error" || $latestVersion === "Error") { $response = [ 'currentVersion' => $currentVersion, 'latestVersion' => $latestVersion, 'hasUpdate' => false, 'error' => 'Failed to fetch version information' ]; } else { $hasUpdate = (version_compare($currentVersion, $latestVersion, '<')) ? true : false; $response = [ 'currentVersion' => $currentVersion, 'latestVersion' => $latestVersion, 'hasUpdate' => $hasUpdate ]; } header('Content-Type: application/json'); echo json_encode($response); ?>