Api Abfrage und if else einbau

PHP:
   $urldoge = "http://data.bter.com/api/1/ticker/doge_btc";
 
   $doge = file_get_contents($urldoge);
 
   if ($doge === false)
   {
       echo 'Fehler: Datei nicht lesbar!';
   }
       else
   {
       $dogejson = json_decode($doge, true);
 
       if (is_null($dogejson))
       {
           $dogepreis = 'Fehler: Datei ist kein JSON';
       }
           else
       {
           $dogepreis = $dogejson["last"];
       }
   }
 
ja genauso hab ich das ja auch weiß nur nicht ob Fehler da jetzt auch ausgegeben werden falls mal einer ist....

danke schon mal für die Hilfe
 
Dann provozier einen Fehler. :)

Etwas falsches eingeben oder die Datei umbennen oder so... Kommt auf das Gesamtkonstrukt an.
 
Tipp: Mit Guard-Clauses (grob gesagt: bei leicht zu prüfenden Fehlern rausspringen/Exception werfen, statt zu schachteln) kann man eine tiefe Schachtelung des Codes besser vermeiden:

PHP:
<?php

function getDogePreis($urldoge)
{
    $doge = file_get_contents($urldoge);

    if ($doge === false) {
        return array('error' => true, 'value' => 'Datei nicht lesbar!');
    }

    $dogejson = json_decode($doge, true);

    if (is_null($dogejson)) {
        return array('error' => true, 'value' => 'Datei ist kein JSON');
    }

    if (!array_key_exists('last', $dogejson)) {
        return array('error' => true, 'value' => 'JSON-Daten entsprechen nicht erwartetem Format');
    }

    return array('error' => false, 'value' => $dogejson["last"]);
}


$dogeurl = "http://data.bter.com/api/1/ticker/doge_btc";

$dogepreis = getDogePreis($dogeurl);

if ($dogepreis['error']) {
    printf("Fehler: %s\n", $dogepreis['value']);
} else {
    printf("Der abgerufene Dogepreis beträgt %s\n", $dogepreis['value']);
}

Schlecht lesbare Alternative mit Schachtelung:

PHP:
function getDogePreis($urldoge)
{
    $doge = file_get_contents($urldoge);

    $ret = array();

    if ($doge === false) {
        $ret = array('error' => true, 'value' => 'Datei nicht lesbar!');
    } else {
        $dogejson = json_decode($doge, true);

        if (is_null($dogejson)) {
            $ret = array('error' => true, 'value' => 'Datei ist kein JSON');
        } else {
            if (!array_key_exists('last', $dogejson)) {
                $ret = array('error' => true, 'value' => 'JSON-Daten entsprechen nicht erwartetem Format');
            } else {
                $ret = array('error' => false, 'value' => $dogejson["last"]);
            }
        }
    }

    return $ret;
}

Hier wird versucht, das ein wenig auszuführen:

- http://php-de.github.io/jumpto/waechter/ (ist etwas angestaubt bzw. bin ich inhaltlich nicht mit allem so glücklich, aber durchaus lesenswert)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück