Position actuelle: Accueil> Derniers articles> Combiné avec l'API météo pour afficher le coucher du soleil du jour + les informations météorologiques

Combiné avec l'API météo pour afficher le coucher du soleil du jour + les informations météorologiques

M66 2025-05-31

Dans les sites Web ou les applications modernes, la combinaison d'informations météorologiques en temps réel peut améliorer l'expérience utilisateur. Par exemple, si vous développez un site Web de voyage ou une plate-forme d'activités de plein air, les informations sur les temps météorologiques et les temps de coucher du soleil sont très précieuses. Cet article expliquera comment utiliser PHP pour combiner l'API météorologique pour obtenir des temps réels dans un certain endroit et un certain coucher de soleil de la journée.

1. Choisissez un service API météo

Afin d'obtenir des informations météorologiques, nous avons besoin d'une API météorologique stable et fiable. Cet exemple utilise une API gratuite fournie par OpenWeather (Remarque: Vous devez d'abord vous inscrire sur le site officiel et obtenir la clé de l'API).

2. Préparer les demandes d'API

L'API d'OpenWeather fournit des données contenant des conditions météorologiques et des temps de coucher de soleil. Voici un exemple de demande de PHP de base:

 <?php
$apiKey = 'YOUR_API_KEY'; // Remplacer par le vôtre API Clé
$city = 'Beijing'; // Vous pouvez passer à n&#39;importe quelle ville soutenue
$apiUrl = "https://api.openweathermap.org/data/2.5/weather?q={$city}&appid={$apiKey}&units=metric";

// initialisation cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

// décodage JSON
$data = json_decode($response, true);

// Vérifiez si les données sont obtenues avec succès
if (isset($data['main'])) {
    $temperature = $data['main']['temp'];
    $weather = $data['weather'][0]['description'];
    $sunsetUnix = $data['sys']['sunset'];
    $sunsetTime = date("H:i:s", $sunsetUnix); // Convertir en heure locale(UTC Un réglage du fuseau horaire peut être nécessaire)

    echo "Ville actuelle:{$city}<br>";
    echo "Température en temps réel:{$temperature}°C<br>";
    echo "Conditions météorologiques:{$weather}<br>";
    echo "L&#39;heure du coucher du soleil d&#39;aujourd&#39;hui:{$sunsetTime}<br>";
} else {
    echo "Impossible d&#39;obtenir des informations météorologiques,Veuillez vérifier le nom de la ville ou API Clé是否正确。";
}
?>

3. Choses à noter

  1. Problème de fuseau horaire : L'API renvoie l'heure UTC, qui peut devoir être convertie en fonction du fuseau horaire où se trouve votre serveur ou utilisateur. Il peut être géré à l'aide de la classe DateTimeZone de PHP.

  2. Stratégie de mise en cache : les données météorologiques n'ont pas besoin d'être actualisées chaque seconde, vous pouvez configurer un cache, comme la mise à jour toutes les 10 minutes pour soulager la pression de la demande d'API.

  3. Gestion des erreurs : assurez-vous de faire face à l'échec des demandes d'API pour éviter les accidents de la page en raison de problèmes de réseau ou d'épuisement des quotas API.

  4. Sécurité de l'interface : essayez de ne pas exposer vos clés API au code frontal, et il est préférable de les procurer via le back-end.

Iv. Exemples de déploiement réels

Enregistrez le script PHP ci-dessus comme Weather.php et déployez-le sur votre serveur, par exemple:

 https://www.m66.net/weather.php

Visitez cette adresse pour voir les informations sur le temps et le coucher du soleil.

Conclusion

Afficher les informations en temps réel en combinaison avec l'API Weather peut non seulement rendre votre site Web plus interactif, mais également fournir une aide pratique. J'espère que cet article vous inspirera! Si vous avez des besoins plus complexes, tels que l'interrogation par la météo par les coordonnées, affichant des prévisions pour les prochains jours, etc., vous pouvez également continuer à explorer d'autres interfaces API fournies par OpenWeather.

Voulez-vous l'ajouter au site Web existant ou créer un module indépendamment?