PHP ialah bahasa pengaturcaraan bahagian belakang yang popular dan popular secara meluas dalam bidang pembangunan web. Fungsi ramalan cuaca ialah senario aplikasi web biasa Melaksanakan fungsi ramalan cuaca berdasarkan PHP adalah agak mudah dan mudah difahami. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi ramalan cuaca.
1. Dapatkan API data cuaca
Untuk melaksanakan fungsi ramalan cuaca, anda perlu mendapatkan data cuaca terlebih dahulu. Kami boleh menggunakan API cuaca pihak ketiga untuk mendapatkan data cuaca tepat masa nyata. Pada masa ini, penyedia API cuaca arus perdana di China termasuk "Cuaca Xinzhi" percuma dan "Cuaca Data Pengagregatan" berbayar.
Mengambil Cuaca Xinzhi sebagai contoh, kami mula-mula memohon akaun pembangun di tapak web rasminya dan mendapatkan kunci API percuma. Pendaftaran akaun pembangun adalah percuma dan setiap akaun mempunyai 1,000 panggilan percuma setiap hari secara lalai.
Xinzhi Weather menyediakan pelbagai jenis API, termasuk cuaca masa nyata, cuaca setiap jam, cuaca harian, dsb. Hanya pilih API yang sepadan mengikut keperluan sebenar. Dalam artikel ini, kami memilih untuk menggunakan API cuaca masa nyata untuk mendapatkan data cuaca semasa.
2. Menghuraikan data format JSON
Data cuaca yang dikembalikan oleh Cuaca Xinzhi dikembalikan dalam format JSON. Oleh itu, kita perlu belajar cara menghuraikan data format JSON.
Dalam PHP, anda boleh menggunakan fungsi terbina dalam json_decode() untuk menukar data format JSON kepada objek atau tatasusunan. Contohnya:
$json_string = '{"name":"Peter","age":21,"city":"New York"}'; $data = json_decode($json_string); echo $data->name;
Dalam kod di atas, kami menukar rentetan berformat JSON ke objek $data, dan kemudian mengeluarkan nilai "Peter" bagi atribut namanya.
Jika anda tidak mahu menukar data JSON kepada objek, tetapi ingin menukarnya kepada tatasusunan, anda boleh menetapkan parameter kedua fungsi json_decode() kepada benar. Contohnya:
$json_string = '{"name":"Peter","age":21,"city":"New York"}'; $data = json_decode($json_string, true); echo $data['name'];
3. Gunakan CURL untuk mendapatkan data
Untuk mendapatkan data daripada pelayan API, kita boleh menggunakan perpustakaan CURL dalam PHP. CURL ialah protokol pemindahan fail berdasarkan protokol HTTP, sering digunakan untuk berinteraksi dengan pelayan web, menerima dan menghantar data.
Dalam PHP, anda boleh menggunakan fungsi curl_init() untuk memulakan sesi CURL, dan kemudian gunakan fungsi curl_setopt() untuk menetapkan beberapa parameter, seperti URL permintaan, kaedah permintaan, maklumat pengepala permintaan, data badan permintaan, dsb. Akhir sekali, gunakan fungsi curl_exec() untuk melaksanakan sesi CURL dan mendapatkan data yang dikembalikan oleh pelayan.
Sebagai contoh, kod berikut ialah contoh penggunaan CURL untuk mendapatkan data cuaca masa nyata daripada API Cuaca Xinzhi:
$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'];
Dalam kod di atas, kami menggunakan fungsi http_build_query() untuk menukar tatasusunan parameter kepada pertanyaan rentetan dalam URL, Dengan itu menghantar parameter permintaan ke pelayan API. Kemudian gunakan fungsi json_decode() untuk menghuraikan data format JSON yang dikembalikan oleh pelayan ke dalam tatasusunan, dan akhirnya mengeluarkan maklumat keadaan bandar, suhu dan cuaca.
4. Gunakan sintaks templat untuk mengeluarkan data
Selepas kami memperoleh data cuaca, kami perlu memaparkannya ke halaman hujung hadapan. Untuk mengasingkan data daripada halaman hadapan, kami boleh menggunakan enjin templat PHP untuk mencapai ini.
Enjin templat PHP biasa termasuk Smarty, Blade, Twig, dsb. Di sini kami mengambil Blade sebagai contoh untuk memperkenalkan cara untuk memaparkan data cuaca ke halaman hadapan.
Pertama, kami mentakrifkan pemegang tempat dalam templat Blade untuk memaparkan data cuaca. Contohnya:
<div class="weather"> <p>当前城市:{{ $city }}</p> <p>当前温度:{{ $temperature }}℃</p> <p>天气状况:{{ $text }}</p> </div>
Kemudian, kami mengeluarkan data cuaca yang diperolehi kepada pemegang tempat dalam kod PHP. Contohnya:
$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();
Dalam kod di atas, kami mula-mula menggunakan pembina Blade untuk mencipta objek pandangan $view. Antara parameter pembina, parameter pertama ialah laluan ke folder paparan, dan parameter kedua ialah laluan ke folder cache.
Kemudian, kami menggunakan kaedah make() objek paparan untuk menghantar nama fail paparan dan data yang akan diberikan untuk menjana contoh paparan. Akhir sekali, kandungan paparan dikeluarkan menggunakan kaedah render() bagi contoh paparan.
5. Contoh kod lengkap
Akhir sekali, kami menyepadukan kod di atas ke dalam fail PHP yang lengkap untuk melaksanakan fungsi ramalan cuaca. Kod lengkap adalah seperti berikut:
<?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();
Dalam kod sampel ini, kami memperkenalkan kebergantungan enjin templat Blade melalui fail vendor/autoload.php. Kami mencipta templat bilah dalam folder pandangan dengan ruang letak untuk memaparkan data cuaca. Akhir sekali, kami menghantar data ke dalam templat melalui objek paparan dan memaparkan halaman ramalan cuaca akhir.
6. Kesimpulan
Menggunakan PHP untuk melaksanakan fungsi ramalan cuaca adalah keperluan pembangunan web yang biasa. Dengan bantuan API cuaca pihak ketiga, kami boleh mendapatkan data cuaca dengan mudah. Kemudian, gunakan perpustakaan CURL untuk mendapatkan data, fungsi json_decode() untuk menghuraikan data, dan enjin templat Blade untuk mengeluarkan data, dan fungsi ramalan cuaca boleh direalisasikan sepenuhnya. Walaupun langkah di atas agak menyusahkan, ia agak mudah untuk dimulakan setelah anda menguasainya.
Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan fungsi ramalan cuaca. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!