Files
crm.clientright.ru/aviationstack.php

111 lines
4.1 KiB
PHP
Raw Normal View History

<?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;
}
?>