EnglishThis website is also available in English

COVID-19 CORONA dapatkan data dengan PHP

COVID-19 CORONA dapatkan data mudah dengan PHP dan cURL. Pada artikel sebelumnya, Anda dapat membaca cara mengambil data dari Coronavirus Disease (COVID-19) GIS Hub REST API dengan mikrokontroler ESP32 dan sketsa yang diprogram dalam Arduino IDE. Atas permintaan sejumlah pembaca, sekarang ada contoh sederhana tentang bagaimana Anda dapat melakukan hal yang sama dengan bahasa pemrograman PHP. Dengan cara ini Anda dapat menggunakan data di, misalnya, situs web atau aplikasi.

Coronavirus COVID-19 Global Cases
Coronavirus COVID-19 Global Cases

COVID-19 GIS Hub REST API

Kali ini kami juga akan mengambil data dari Coronavirus Disease GIS Hub REST API. Anda dapat meminta data dalam format JSON di sana. Menggunakan API-Explorer di situs web itu, Anda dapat dengan mudah menyusun URL kueri yang benar.

COVID-19 CORONA dapatkan data dengan PHP - REST API Query-URL
COVID-19 CORONA dapatkan data dengan PHP – REST API Query-URL

Kami memilih pengaturan berikut:

  • Untuk “Country_Region” pilih misalnya “Indonesia”
  • Di “Dari bidang”, centang “Last_Update”, “Confirmed”, “Deaths”, “Recovered”
  • Di bawah “Opsi keluaran” set “Permintaan geometri” menjadi “Salah” (dan sisanya juga)

Di kanan atas, lihat URL permintaan yang diperoleh:

https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?where=UPPER(Country_Region)%20like%20%27%25INDONESIA%25%27&outFields=Last_Update,Recovered,Deaths,Confirmed&returnGeometry=false&outSR=4326&f=json

Klik “Coba Sekarang” untuk menguji pengaturan, Anda akan melihat kira-kira kode JSON berikut:

{
   "objectIdFieldName": "OBJECTID",
   "uniqueIdField": {
      "name": "OBJECTID",
      "isSystemMaintained": true
   },
   "globalIdFieldName": "",
   "geometryType": "esriGeometryPoint",
   "spatialReference": {
      "wkid": 4326,
      "latestWkid": 4326
   },
   "fields": [
      {
         "name": "Last_Update",
         "type": "esriFieldTypeDate",
         "alias": "Last Update",
         "sqlType": "sqlTypeOther",
         "length": 8,
         "domain": null,
         "defaultValue": null
      },
      {
         "name": "Recovered",
         "type": "esriFieldTypeInteger",
         "alias": "Recovered",
         "sqlType": "sqlTypeOther",
         "domain": null,
         "defaultValue": null
      },
      {
         "name": "Deaths",
         "type": "esriFieldTypeInteger",
         "alias": "Deaths",
         "sqlType": "sqlTypeOther",
         "domain": null,
         "defaultValue": null
      },
      {
         "name": "Confirmed",
         "type": "esriFieldTypeInteger",
         "alias": "Confirmed",
         "sqlType": "sqlTypeOther",
         "domain": null,
         "defaultValue": null
      }
   ],
   "features": [
      {
         "attributes": {
            "Last_Update": 1584528782000,
            "Recovered": 11,
            "Deaths": 19,
            "Confirmed": 227
         }
      }
   ]
}

Kami akan menempelkan URL ini ke kode PHP di bawah ini.

Kode PHP: Minta data JSON

PHP membutuhkan ekstensi cURL (“Client URL Library”) untuk membuat permintaan API. Kutipan PHP di bawah ini menunjukkan cara mendapatkan data JSON dari REST API dengan cURL.

  • URL yang diperoleh di atas ditugaskan ke variabel $url
  • kemudian API tersebut dialamatkan dengan curl_exec
  • string JSON yang dihasilkan berakhir di variabel $response
  • kemudian json_decode mengonversi string JSON ke variabel PHP dan memetakannya ke $result
  • akhirnya, isi $result dicetak menggunakan var_dump ()
<?php

$url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?where=UPPER(Country_Region)%20like%20%27%25INDONESIA%25%27&outFields=Last_Update,Recovered,Deaths,Confirmed&returnGeometry=false&outSR=4326&f=json";

$client = curl_init($url);
curl_setopt($client,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($client);

$result = json_decode($response);

echo"<pre>";
var_dump($result);
echo"</pre>";

?>

Hasilnya adalah objek di bawah ini:

object(stdClass)#1 (7) {
  ["objectIdFieldName"]=>
  string(8) "OBJECTID"
  ["uniqueIdField"]=>
  object(stdClass)#2 (2) {
    ["name"]=>
    string(8) "OBJECTID"
    ["isSystemMaintained"]=>
    bool(true)
  }
  ["globalIdFieldName"]=>
  string(0) ""
  ["geometryType"]=>
  string(17) "esriGeometryPoint"
  ["spatialReference"]=>
  object(stdClass)#3 (2) {
    ["wkid"]=>
    int(4326)
    ["latestWkid"]=>
    int(4326)
  }
  ["fields"]=>
  array(4) {
    [0]=>
    object(stdClass)#4 (7) {
      ["name"]=>
      string(11) "Last_Update"
      ["type"]=>
      string(17) "esriFieldTypeDate"
      ["alias"]=>
      string(11) "Last Update"
      ["sqlType"]=>
      string(12) "sqlTypeOther"
      ["length"]=>
      int(8)
      ["domain"]=>
      NULL
      ["defaultValue"]=>
      NULL
    }
    [1]=>
    object(stdClass)#5 (6) {
      ["name"]=>
      string(9) "Recovered"
      ["type"]=>
      string(20) "esriFieldTypeInteger"
      ["alias"]=>
      string(9) "Recovered"
      ["sqlType"]=>
      string(12) "sqlTypeOther"
      ["domain"]=>
      NULL
      ["defaultValue"]=>
      NULL
    }
    [2]=>
    object(stdClass)#6 (6) {
      ["name"]=>
      string(6) "Deaths"
      ["type"]=>
      string(20) "esriFieldTypeInteger"
      ["alias"]=>
      string(6) "Deaths"
      ["sqlType"]=>
      string(12) "sqlTypeOther"
      ["domain"]=>
      NULL
      ["defaultValue"]=>
      NULL
    }
    [3]=>
    object(stdClass)#7 (6) {
      ["name"]=>
      string(9) "Confirmed"
      ["type"]=>
      string(20) "esriFieldTypeInteger"
      ["alias"]=>
      string(9) "Confirmed"
      ["sqlType"]=>
      string(12) "sqlTypeOther"
      ["domain"]=>
      NULL
      ["defaultValue"]=>
      NULL
    }
  }
  ["features"]=>
  array(1) {
    [0]=>
    object(stdClass)#9 (1) {
      ["attributes"]=>
      object(stdClass)#8 (4) {
        ["Last_Update"]=>
        int(1584528782000)
        ["Recovered"]=>
        int(11)
        ["Deaths"]=>
        int(19)
        ["Confirmed"]=>
        int(227)
      }
    }
  }
}

Data yang kami cari ada di bagian terakhir data:

  ["features"]=>
  array(1) {
    [0]=>
    object(stdClass)#9 (1) {
      ["attributes"]=>
      object(stdClass)#8 (4) {
        ["Last_Update"]=>
        int(1584528782000)
        ["Recovered"]=>
        int(11)
        ["Deaths"]=>
        int(19)
        ["Confirmed"]=>
        int(227)
      }
    }
  }

Dengan kode di bawah ini kita mendapatkan data yang diinginkan dari objek:

$Confirmed = $result->features[0]->attributes->Confirmed;

$Deaths = $result->features[0]->attributes->Deaths;

$Recovered = $result->features[0]->attributes->Recovered;

Kami masih harus mengonversi stempel waktu (Epoch) menjadi tanggal dan waktu yang dapat dibaca:

$unix_timestamp = $result->features[0]->attributes->Last_Update;

$Last_Update = date("l d F Y, H:i:s", substr($unix_timestamp, 0, 10));

Contoh kode juga tersedia di GitHub.

Jika kita menyatukan semua kode di atas, kode di bawah adalah hasilnya:

<?php

$url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?where=UPPER(Country_Region)%20like%20%27%25INDONESIA%25%27&outFields=Last_Update,Recovered,Deaths,Confirmed&returnGeometry=false&outSR=4326&f=json";

$client = curl_init($url);
curl_setopt($client,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($client);

$result = json_decode($response);

$Confirmed = $result->features[0]->attributes->Confirmed;
$Deaths = $result->features[0]->attributes->Deaths;
$Recovered = $result->features[0]->attributes->Recovered;

$unix_timestamp = $result->features[0]->attributes->Last_Update;
$Last_Update = date("l d F Y, H:i:s", substr($unix_timestamp, 0, 10)); // 13 digit epoch time to date conversion

echo"Confirmed: ".$Confirmed;
echo"<br>";
echo"Deaths: ".$Deaths;
echo"<br>";
echo"Revocered: ".$Recovered;
echo"<br>";
echo"Last Update: ".$Last_Update;

?>

Output dari kode tersebut adalah seperti di bawah ini teks:

Confirmed: 227
Deaths: 19
Revocered: 11
Last Update: Rabu 18 Maret 2020, 11:53:02

COVID-19 CORONA dapatkan data dengan PHP: proyek Anda

Seperti kebanyakan artikel di blog ini, informasi ini hanya merupakan dorongan untuk membuat proyek Anda sendiri. Jika Anda telah membuat sesuatu yang indah sendiri, beri tahu kami di komentar di bawah blog ini!

COVID-19 CORONA dapatkan data: Kawal Corona

Atas permintaan saya membuat contoh untuk API di KAWAL CORONA, situs web Ethical Hacker IndonesiaContoh kode juga tersedia di GitHub.

<?php

$url = "https://api.kawalcorona.com/indonesia/";

$client = curl_init($url);
curl_setopt($client,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($client);

$result = json_decode($response);

$Confirmed = $result[0]->positif;

$Deaths = $result[0]->meninggal;

$Recovered = $result[0]->sembuh;

$datetimeString = $result[1]->lastupdate;
$Last_Update = date("l d F Y, H:i:s", strtotime($datetimeString));

echo "Confirmed: ".$Confirmed;
echo "<br>";
echo "Deaths: ".$Deaths;
echo "<br>";
echo "Recovered: ".$Recovered;
echo "<br>";
echo "Last Update: ".$Last_Update;

?>
kawalcorona.com
kawalcorona.com

Total seluruh dunia

Sekali lagi berdasarkan permintaan, saya sudah tahu bagaimana Anda bisa meminta totalnya. Dengan penjelajah API Anda hanya dapat mengambil statistik per negara atau wilayah. Oleh karena itu, menanyakan total global memerlukan beberapa kreativitas.

Peta pada Coronavirus COVID-19 Global Cases menunjukkan total, tetapi jika Anda mencoba permintaan XHR yang digunakan untuk itu, Anda akan mengalami 403 kesalahan. Namun, dengan menggabungkan host yang ditunjukkan oleh penjelajah API dengan kueri yang digunakan peta Kasus Global, ia berfungsi. Ini akan menghasilkan URL berikut:

Jumlah infeksi di seluruh dunia:

https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Confirmed%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true

Jumlah kematian di seluruh dunia:

https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Deaths%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true

Pemulihan di seluruh dunia:

https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Recovered%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true

Contoh kode php:

<?php

$confirmed = getData("https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Confirmed%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true");

$deaths = getData("https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Deaths%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true");

$recovered = getData("https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/Coronavirus_2019_nCoV_Cases/FeatureServer/1/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Recovered%22%2C%22outStatisticFieldName%22%3A%22value%22%7D%5D&cacheHint=true");

echo"Confirmed: ".$confirmed->features[0]->attributes->value;
echo"<br>";
echo"Deaths: ".$deaths->features[0]->attributes->value;
echo"<br>";
echo"Recovered: ".$recovered->features[0]->attributes->value;

function getData($url){

   $client = curl_init($url);
   curl_setopt($client,CURLOPT_RETURNTRANSFER,true);
   $response = curl_exec($client);

   return json_decode($response);
};

?>

 

Add a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *