У світі веб-розробки однією з найпоширеніших задач є автоматизація процесу завантаження та оновлення різноманітного програмного забезпечення, такого як бібліотеки, плагіни, або, наприклад, серверне програмне забезпечення для гри Minecraft. Одним із широковикористовуваних серверних програм для Minecraft є Paper, яке є оптимізованою версією спільноти Bukkit/Spigot. Ця стаття розгляне підхід до автоматизованого завантаження останньої версії Paper за допомогою PHP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function downloadPaperMC($version = null) { $apiUrl = 'https://api.github.com/repos/PaperMC/Paper/releases/latest'; // Якщо вказана конкретна версія, адаптуємо URL API відповідно if ($version !== null) { $apiUrl = "https://api.github.com/repos/PaperMC/Paper/releases/tags/{$version}"; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'YourAppName'); // Замініть 'YourAppName' на власний User-Agent $response = curl_exec($ch); curl_close($ch); if ($response === false) { die('Помилка під час отримання версії PaperMC.'); } $releaseData = json_decode($response, true); if (isset($releaseData['assets'][0]['browser_download_url'])) { $downloadUrl = $releaseData['assets'][0]['browser_download_url']; $downloadFileName = basename($downloadUrl); // Тут ви можете вставити код завантаження файлу (наприклад, з file_get_contents, fopen і т. д.) // Приклад: завантажити файл і зберегти його file_put_contents($downloadFileName, file_get_contents($downloadUrl)); echo "Версія PaperMC {$releaseData['tag_name']} успішно завантажена."; } else { echo "Помилка при визначенні посилання для завантаження PaperMC."; } } |