111 lines
4.1 KiB
PHP
111 lines
4.1 KiB
PHP
|
|
<?php
|
|||
|
|
// Путь к папке для логов
|
|||
|
|
$logDir = __DIR__ . '/logs';
|
|||
|
|
|
|||
|
|
// Убедимся, что папка для логов существует
|
|||
|
|
if (!is_dir($logDir)) {
|
|||
|
|
mkdir($logDir, 0777, true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Лог-файл
|
|||
|
|
$logFile = $logDir . '/aviationstack.log';
|
|||
|
|
|
|||
|
|
// Функция для записи в лог
|
|||
|
|
function writeLog($message)
|
|||
|
|
{
|
|||
|
|
global $logFile;
|
|||
|
|
$timestamp = date('Y-m-d H:i:s');
|
|||
|
|
file_put_contents($logFile, "[$timestamp] $message" . PHP_EOL, FILE_APPEND);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Ваш API-ключ
|
|||
|
|
$apiKey = "dcec8862668965817443790ed8fcb902";
|
|||
|
|
|
|||
|
|
// Дата рейса
|
|||
|
|
$flightDate = "2025-01-14";
|
|||
|
|
|
|||
|
|
// Код рейса
|
|||
|
|
$flightIATA = "SU1231";
|
|||
|
|
|
|||
|
|
// Дополнительные параметры фильтрации
|
|||
|
|
$additionalFilters = [
|
|||
|
|
'flight_status' => 'landed', // Опционально: можно изменить на нужный статус
|
|||
|
|
'limit' => 10, // Ограничение результатов
|
|||
|
|
'offset' => 0 // Начало пагинации
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// URL API
|
|||
|
|
$apiUrl = "http://api.aviationstack.com/v1/flights";
|
|||
|
|
|
|||
|
|
// Параметры запроса
|
|||
|
|
$queryParams = array_merge(
|
|||
|
|
[
|
|||
|
|
'access_key' => $apiKey,
|
|||
|
|
'flight_date' => $flightDate,
|
|||
|
|
'flight_iata' => $flightIATA
|
|||
|
|
],
|
|||
|
|
$additionalFilters
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// Формируем URL
|
|||
|
|
$url = $apiUrl . '?' . http_build_query($queryParams);
|
|||
|
|
|
|||
|
|
// Логируем запрос
|
|||
|
|
writeLog("Отправка запроса к API: $url");
|
|||
|
|
|
|||
|
|
// Инициализация cURL
|
|||
|
|
$ch = curl_init($url);
|
|||
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|||
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
|||
|
|
|
|||
|
|
// Отправка запроса
|
|||
|
|
$response = curl_exec($ch);
|
|||
|
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|||
|
|
$curlError = curl_error($ch);
|
|||
|
|
|
|||
|
|
// Закрытие соединения
|
|||
|
|
curl_close($ch);
|
|||
|
|
|
|||
|
|
// Логируем HTTP-код ответа
|
|||
|
|
writeLog("HTTP-код ответа: $httpCode");
|
|||
|
|
|
|||
|
|
// Проверяем ошибки cURL
|
|||
|
|
if ($curlError) {
|
|||
|
|
writeLog("Ошибка cURL: $curlError");
|
|||
|
|
die("Ошибка cURL: $curlError");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Логируем тело ответа
|
|||
|
|
writeLog("Тело ответа: $response");
|
|||
|
|
|
|||
|
|
// Обрабатываем тело ответа
|
|||
|
|
$data = json_decode($response, true);
|
|||
|
|
|
|||
|
|
if ($httpCode === 200 && isset($data['data'])) {
|
|||
|
|
foreach ($data['data'] as $flight) {
|
|||
|
|
$output = "Рейс: " . ($flight['flight']['iata'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Дата: " . ($flight['flight_date'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Статус: " . ($flight['flight_status'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Аэропорт вылета: " . ($flight['departure']['airport'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Запланированное время вылета: " . ($flight['departure']['scheduled'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Фактическое время вылета: " . ($flight['departure']['actual'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Аэропорт прилета: " . ($flight['arrival']['airport'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Запланированное время прилета: " . ($flight['arrival']['scheduled'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Фактическое время прилета: " . ($flight['arrival']['actual'] ?? 'неизвестно') . PHP_EOL;
|
|||
|
|
$output .= "Задержка вылета: " . ($flight['departure']['delay'] ?? 'неизвестно') . " минут" . PHP_EOL;
|
|||
|
|
$output .= "Задержка прилета: " . ($flight['arrival']['delay'] ?? 'неизвестно') . " минут" . PHP_EOL;
|
|||
|
|
$output .= str_repeat("-", 50) . PHP_EOL;
|
|||
|
|
|
|||
|
|
// Выводим на экран
|
|||
|
|
echo nl2br($output);
|
|||
|
|
|
|||
|
|
// Логируем данные о рейсе
|
|||
|
|
writeLog("Данные рейса:\n$output");
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
$error = isset($data['error']) ? json_encode($data['error']) : "Неизвестная ошибка";
|
|||
|
|
writeLog("Ошибка: HTTP-код $httpCode, Тело ответа: $response");
|
|||
|
|
echo "Ошибка: $error" . PHP_EOL;
|
|||
|
|
}
|
|||
|
|
?>
|