Bir arkadaşımın isteği üzerine Pazar sabahı 1 saatlik bir çalışmadan sonra PHP ile güncel COVID-19 vakalarını alan bir script yazdım. İsteyen istediği gibi geliştirip herhangi bir amaç için kullanabilir. Güncel verileri almak için https://github.com/CSSEGISandData/COVID-19 kaynağını kullanıyorum. Veriler düzenli olarak 3 kategoride gün gün CVS dosyasında güncelleniyor. Bu kategoriler:
- Onaylanmis Covid-19 vakaları
- Covid-19 vakasından ölenlerin sayısı
- Covid-19 hastalığından kurtulan hasta sayısı
Bu bilgileri elde etmek için PHP’de şöyle bir sınıf yazdım:
<?php
/*
*
* Copyright Burhan Tanis
* W: burhantanis.com
*/
class CovidDataProvider
{
public function readCSVGenerator($file)
{
//readonly modunda dosyayi ac.
$handle = fopen($file, "r");
while (!feof($handle)) {
//iterator ile hafizayi fazla yormuyorum. Cursor teknigiyle datalar arasi dolasiyorum.
yield fgetcsv($handle);
}
fclose($handle);
}
/**
*
* Bu metod bilgileri array icinde belli bir duzene sokuyor ki ileride ulkeye gore data cekeyim.
*
* @param $raw_url
* @param $country
* @return array|mixed
*/
public function getCountryData($raw_url, $country)
{
$result = [];
$i = 0;
$cols = [];
foreach ($this->readCSVGenerator($raw_url) as $line) {
if ($i == 0) {
$c = 0;
foreach ($line as $col) {
$cols[$c] = $col;
$c++;
}
} else if ($i > 0) {
$c = 0;
foreach ($line as $col) {
$data[$i][$cols[$c]] = $col;
$c++;
}
}
$i++;
}
foreach ($data as $line) {
if ($line['Country/Region'] === $country) {
$result = $line;
break;
}
}
return $result;
}
}
Kullanımı şu şekilde:
$covid = new CovidDataProvider();
//URL BILGILERI:
// Confirmed : https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv
// Death: https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv
// Recovered: https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv
//Asagida confirmed covid virus vakalarini cekiyorum.
$raw_url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv';
$data = $covid->getCountryData($raw_url, 'Turkey');
//Hangi tarihi cekeceksen asagidaki formatta yaziyorsun.
//Dongu icinde tarihleri gostereceksen $data arrayini kullanarak dongude belirledigin tarihler arasindaki datayi aldirtabilirsin.
echo $data['3/14/20'];
Etiketler: