Adı Verilen Ülkelerdeki Covid-19 vakalarını güncel olarak Gün Gün Gösteren PHP Script Yazıyoruz



2 dakikalık okuma
March 15, 2020

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:

  1. Onaylanmis Covid-19 vakaları
  2. Covid-19 vakasından ölenlerin sayısı
  3. 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: