In PHP kann die Funktion date_sunset () die Sonnenuntergangszeit eines bestimmten Datums und eines bestimmten Ortes leicht berechnen. Diese Funktion ist besonders wichtig auf Websites, auf denen Informationen zu Rizhao angezeigt werden müssen, wie z. B. Wetterwebsites, Reisebereichwebsites usw.
Jeder Anruf von DATE_SUNSET () erfordert jedoch komplexe astronomische Berechnungen. Wenn Ihre Website eine große Anzahl von Besuchen hat und diese Funktion häufig aufruft, kann dies einen bestimmten Einfluss auf die Serverleistung haben. Um zu optimieren, können wir einfache Caching -Technologie kombinieren, um doppelte Berechnungen zu reduzieren und die Reaktionsgeschwindigkeit der Website erheblich zu verbessern.
In diesem Artikel wird erläutert, wie Date_Sunset () verwendet wird und die Caching-Technologie kombiniert wird, um eine Hochleistungs-Sonnenuntergangszeitabfrage zu erstellen.
Schauen wir uns zunächst ein grundlegendes Beispiel an:
<?php
$date = strtotime('today');
$latitude = 40.7128; // New Yorker Breitengrad
$longitude = -74.0060; // New York City Länge
$sunset = date_sunset($date, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, date('Z') / 3600);
echo "Die heutige Sonnenuntergangszeit ist:$sunset";
?>
Der obige Code wird die heutige Sonnenuntergangszeit in New York City zurückgeben, wie beispielsweise 19:45 .
Angenommen, Ihre Website -Seite berechnet die Sonnenuntergangszeit jedes Mal neu, wenn sie aktualisiert wird, selbst in derselben Stadt oder am selben Tag, was zu unnötige Verschwendung von Serverressourcen führt.
Tatsächlich ist die Sonnenuntergangszeit am selben Ort und am selben Tag festgelegt. Daher können wir die Ergebnisse nach der ersten Berechnung im Cache speichern. Wenn Sie das nächste Mal anfordern, wird der Cache direkt gelesen und keine Berechnungen mehr wiederholt.
Das folgende Beispiel zeigt, wie das Caching von Dateien verwendet wird:
<?php
function getSunsetTime($latitude, $longitude) {
$cacheDir = __DIR__ . '/cache/';
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0777, true);
}
$cacheKey = md5($latitude . '_' . $longitude . '_' . date('Y-m-d')) . '.txt';
$cacheFile = $cacheDir . $cacheKey;
if (file_exists($cacheFile)) {
$sunset = file_get_contents($cacheFile);
} else {
$date = strtotime('today');
$sunset = date_sunset($date, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, date('Z') / 3600);
file_put_contents($cacheFile, $sunset);
}
return $sunset;
}
// Beispiel für die Nutzung
$latitude = 34.0522; // Los Angeles Breite
$longitude = -118.2437; // Los Angeles Länge
$sunset = getSunsetTime($latitude, $longitude);
echo "Die heutige Sonnenuntergangszeit in Los Angeles:$sunset";
?>
Die Logik dieses Programms lautet:
Überprüfen Sie, ob das Cache -Verzeichnis existiert, und erstellen Sie es, wenn es nicht vorhanden ist.
Generieren Sie zwischen Standort und Datum zwischengespeicherte Schlüsselnamen.
Wenn die Cache -Datei vorhanden ist, lesen Sie sie direkt durch.
Wenn es nicht vorhanden ist, rufen Sie DATE_SUNSET () an, um es im Cache zu berechnen und zu speichern.
Durch diese Methode wird der gleiche Ort nur einmal im selben Tag berechnet, wodurch die Belastung des Servers stark verringert wird.
Wenn Sie möchten, dass Benutzer die Sonnenuntergangszeiten in verschiedenen Städten durch URLs dynamisch abfragen, können Sie dies tun:
<?php
$latitude = isset($_GET['lat']) ? floatval($_GET['lat']) : 0;
$longitude = isset($_GET['lon']) ? floatval($_GET['lon']) : 0;
if ($latitude === 0 || $longitude === 0) {
echo "Bitte passieren Sie URL Parameter liefern Breitengrad und Längengrad,Zum Beispiel:https://m66.net/sunset.php?lat=40.7128&lon=-74.0060";
exit;
}
$sunset = getSunsetTime($latitude, $longitude);
echo "Die Sonnenuntergangszeit für den Abfragestandort ist:$sunset";
?>
Besuchen Sie beispielsweise den Link:
https://m66.net/sunset.php?lat=48.8566&lon=2.3522
Sie können heute die Sonnenuntergangszeit in Paris überprüfen.
DATE_SUNSET () ist ein leistungsstarkes Tool, das in PHP eingebaut ist. Wenn es jedoch häufig ohne Optimierung verwendet wird, kann es die Leistung leicht beeinflussen. Durch die Verwendung von Cache (sogar einfache Datei -Caches) kann der Rechenaufwand stark reduziert werden.
Um die Leistung weiter zu verbessern, können Sie berücksichtigen:
Verwenden Sie Redis oder Memcached, um den Datei -Cache zu ersetzen
Legen Sie einen angemessenen Mechanismus des Cache -Versagens fest (z. B. abgelaufene Caches jeden Tag)
Generieren Sie Sonnenuntergangsdaten für gemeinsame Städte im Voraus
Die rationale Verwendung von Cache ist ein wichtiger Schritt, um Ihre Website schnell und stabil zugänglich zu machen!