Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie PHP zur Implementierung der Wettervorhersagefunktion

So implementieren Sie PHP zur Implementierung der Wettervorhersagefunktion

WBOY
WBOYOriginal
2023-06-27 17:54:041889Durchsuche

PHP ist eine beliebte Back-End-Programmiersprache und erfreut sich im Bereich der Webentwicklung großer Beliebtheit. Die Wettervorhersagefunktion ist ein gängiges Webanwendungsszenario. Die Implementierung der Wettervorhersagefunktion auf Basis von PHP ist relativ einfach und leicht zu verstehen. In diesem Artikel wird erläutert, wie Sie mit PHP die Wettervorhersagefunktion implementieren.

1. Wetterdaten-API abrufen

Um die Wettervorhersagefunktion zu implementieren, müssen Sie zunächst Wetterdaten abrufen. Wir können Wetter-APIs von Drittanbietern verwenden, um genaue Wetterdaten in Echtzeit zu erhalten. Zu den gängigen Wetter-API-Anbietern in China gehören derzeit das kostenlose „Xinzhi Weather“ und das kostenpflichtige „Aggregation Data Weather“.

Am Beispiel von Xinzhi Weather beantragen wir zunächst ein Entwicklerkonto auf der offiziellen Website und erhalten einen kostenlosen API-Schlüssel. Die Registrierung eines Entwicklerkontos ist kostenlos und jedes Konto verfügt standardmäßig über 1.000 kostenlose Anrufe pro Tag.

Xinzhi Weather bietet viele Arten von APIs, darunter Echtzeitwetter, stündliches Wetter, tägliches Wetter usw. Wählen Sie einfach die entsprechende API entsprechend den tatsächlichen Anforderungen aus. In diesem Artikel entscheiden wir uns für die Verwendung der Echtzeit-Wetter-API, um aktuelle Wetterdaten zu erhalten.

2. Daten im JSON-Format analysieren

Die von Xinzhi Weather zurückgegebenen Wetterdaten werden im JSON-Format zurückgegeben. Daher müssen wir lernen, wie man Daten im JSON-Format analysiert.

In PHP können Sie die integrierte Funktion json_decode() verwenden, um Daten im JSON-Format in ein Objekt oder Array zu konvertieren. Zum Beispiel:

$json_string = '{"name":"Peter","age":21,"city":"New York"}';
$data = json_decode($json_string);
echo $data->name;

Im obigen Code konvertieren wir eine JSON-formatierte Zeichenfolge in das Objekt $data und geben dann den Wert „Peter“ seines Namensattributs aus.

Wenn Sie JSON-Daten nicht in ein Objekt, sondern in ein Array konvertieren möchten, können Sie den zweiten Parameter der Funktion json_decode() auf true setzen. Zum Beispiel:

$json_string = '{"name":"Peter","age":21,"city":"New York"}';
$data = json_decode($json_string, true);
echo $data['name'];

3. Verwenden Sie CURL, um Daten abzurufen.

Um Daten vom API-Server abzurufen, können wir die CURL-Bibliothek in PHP verwenden. CURL ist ein auf dem HTTP-Protokoll basierendes Dateiübertragungsprotokoll, das häufig zur Interaktion mit Webservern sowie zum Empfangen und Senden von Daten verwendet wird.

In PHP können Sie die Funktion „curl_init()“ verwenden, um eine CURL-Sitzung zu initialisieren, und dann die Funktion „curl_setopt()“ verwenden, um einige Parameter festzulegen, z. B. Anforderungs-URL, Anforderungsmethode, Anforderungsheaderinformationen, Anforderungskörperdaten usw. Verwenden Sie abschließend die Funktion „curl_exec()“, um die CURL-Sitzung auszuführen und die vom Server zurückgegebenen Daten abzurufen.

Der folgende Code ist beispielsweise ein Beispiel für die Verwendung von CURL zum Abrufen von Echtzeit-Wetterdaten von der Xinzhi-Wetter-API:

$url = 'https://api.seniverse.com/v3/weather/now.json';
$params = [
    'key' => 'your-api-key', // 替换成你自己的API key
    'location' => '北京',
    'language' => 'zh-Hans',
    'unit' => 'c'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo '当前城市:' . $data['results'][0]['location']['name'] . '<br>';
echo '当前温度:' . $data['results'][0]['now']['temperature'] . '℃<br>';
echo '天气状况:' . $data['results'][0]['now']['text'];

Im obigen Code verwenden wir die Funktion http_build_query(), um das Parameterarray in eine Abfrage umzuwandeln Zeichenfolge in der URL, wodurch die Anforderungsparameter an den API-Server gesendet werden. Verwenden Sie dann die Funktion json_decode(), um die vom Server zurückgegebenen Daten im JSON-Format in ein Array zu analysieren und schließlich die Informationen zu Stadt, Temperatur und Wetterbedingungen auszugeben.

4. Verwenden Sie die Vorlagensyntax, um Daten auszugeben.

Nachdem wir die Wetterdaten erhalten haben, müssen wir sie auf der Front-End-Seite rendern. Um die Daten von der Front-End-Seite zu trennen, können wir dazu die Template-Engine von PHP verwenden.

Zu den gängigen PHP-Template-Engines gehören Smarty, Blade, Twig usw. Hier nehmen wir Blade als Beispiel, um vorzustellen, wie Wetterdaten auf der Front-End-Seite gerendert werden.

Zuerst definieren wir in der Blade-Vorlage einen Platzhalter zur Anzeige von Wetterdaten. Zum Beispiel:

<div class="weather">
  <p>当前城市:{{ $city }}</p>
  <p>当前温度:{{ $temperature }}℃</p>
  <p>天气状况:{{ $text }}</p>
</div>

Dann geben wir die erhaltenen Wetterdaten an den Platzhalter im PHP-Code aus. Zum Beispiel:

$data = json_decode($response, true);
$view = new JenssegersBladeBlade(__DIR__.'/views', __DIR__.'/cache');
echo $view->make('weather', [
    'city' => $data['results'][0]['location']['name'],
    'temperature' => $data['results'][0]['now']['temperature'],
    'text' => $data['results'][0]['now']['text'],
])->render();

Im obigen Code verwenden wir zunächst den Konstruktor von Blade, um ein Ansichtsobjekt $view zu erstellen. Unter den Konstruktorparametern ist der erste Parameter der Pfad zum Ansichtsordner und der zweite Parameter der Pfad zum Cache-Ordner.

Dann verwenden wir die Methode make() des Ansichtsobjekts, um den Namen der Ansichtsdatei und die zu rendernden Daten zu übergeben und eine Ansichtsinstanz zu generieren. Abschließend wird der View-Inhalt mit der render()-Methode der View-Instanz ausgegeben.

5. Vollständiges Codebeispiel

Abschließend integrieren wir den obigen Code in eine vollständige PHP-Datei, um die Wettervorhersagefunktion zu implementieren. Der vollständige Code lautet wie folgt:

<?php

require_once 'vendor/autoload.php';

$url = 'https://api.seniverse.com/v3/weather/now.json';
$params = [
    'key' => 'your-api-key', // 替换成你自己的API key
    'location' => '北京',
    'language' => 'zh-Hans',
    'unit' => 'c'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);

$view = new JenssegersBladeBlade(__DIR__.'/views', __DIR__.'/cache');
echo $view->make('weather', [
    'city' => $data['results'][0]['location']['name'],
    'temperature' => $data['results'][0]['now']['temperature'],
    'text' => $data['results'][0]['now']['text'],
])->render();

In diesem Beispielcode führen wir die Abhängigkeit der Blade-Vorlagen-Engine über die Datei „vendor/autoload.php“ ein. Wir erstellen im Ansichtenordner eine Blade-Vorlage mit Platzhaltern zum Rendern von Wetterdaten. Schließlich übergeben wir die Daten über das Ansichtsobjekt an die Vorlage und rendern die endgültige Wettervorhersageseite.

6. Fazit

Die Verwendung von PHP zur Implementierung der Wettervorhersagefunktion ist eine häufige Anforderung bei der Webentwicklung. Mithilfe der Wetter-API eines Drittanbieters können wir ganz einfach Wetterdaten abrufen. Verwenden Sie dann die CURL-Bibliothek zum Abrufen von Daten, die Funktion json_decode() zum Analysieren der Daten und die Blade-Vorlagen-Engine zum Ausgeben der Daten, und die Wettervorhersagefunktion kann vollständig realisiert werden. Obwohl die oben genannten Schritte etwas umständlich sind, sind sie relativ einfach zu starten, sobald Sie sie beherrschen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie PHP zur Implementierung der Wettervorhersagefunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn