Api Abfrage und if else einbau

klausi89

Erfahrenes Mitglied
Hallo, ich möchte gerne den Preis für Dogecoins ausgeben und habe dafür folgendes gemacht...

PHP:
$urldoge = "http://data.bter.com/api/1/ticker/doge_btc";
$doge = file_get_contents($urldoge);
$dogejson = json_decode($doge, true);
$dogepreis = $dogejson["last"];

echo $dogepreis

es funktioniert soweit ganz gut, nun wollte ich aber mal wissen ob das einigermaßen in ordnung so ist oder ob ihr das lieber anders machen würdet

und ich würde das ganze gerne mit if else anweisung machen da ab und zu die abfrage versagt und da steht dann gleich ein riesen Fehler, wäre natürlich
schöner wenn stattdessen einfach "no data" da stehen würde, leider hab ich damit noch ziemliche Schwierigkeiten und würde mich freuen wenn mir dabei jemand helfen könnte.
also quasi
if - alles in Ordnung echo $dogepreis
else - echo "no Data"


Gruß
 
Zuletzt bearbeitet von einem Moderator:
schöner wenn stattdessen einfach "no data" da stehen würde, leider hab ich damit noch ziemliche Schwierigkeiten und würde mich freuen wenn mir dabei jemand helfen könnte.
Für jede Funktion, die du nutzt und per API fehlschlagen könnte, baue eine Fehlerabfrage ein.

file_get_contents solltest du auf false mittels === überprüfen.
json_decode solltest du auf null überprüfen.
 
Hallo Alice , ja eine Zahl wird ausgegeben..und zum anderen sry kann damit nicht wirklich viel anfangen

bin froh das das so schon läuft...auf null überprüfen...mittels === ....hmmm ok ?
 
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))
        echo 'Fehler: Datei ist kein JSON';
    else
    {
        $dogepreis = $dogejson["last"];
        echo $dogepreis;
    }
}
Für den Anfang...
 
Zuletzt bearbeitet von einem Moderator:
danke schon mal funktioniert soweit prima....nur die fehler werden irgendwie nicht ausgegeben
da ich die Api quasi in einer anderen datei habe und im content nur mir $ dogepreis aufrufe
hängt sicherlich damit zusammen.

Gruß
 
Wird denn ein Fehler erzeugt, dass er ausgegeben werden sollte?

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))
       {
           echo 'Fehler: Datei ist kein JSON';
       }
           else
       {
           $dogepreis = $dogejson["last"];
           echo $dogepreis;
       }
   }
 
nein ich wollte einen provozieren um zu schauen ob er fehler ausgibt...

so wie es jetzt ist funktioniert das gut nur das ich eben jez 2 mal den dogepreis sehe

das echo aus der If else anweisung und eben nochmal weil ich im content $dogepreis aufrufe
wenn ich jez aus dem else befehl das echo entferne geht es zwar aber ist dann die funktion auch noch so gegeben?

es soll hat dort im content wo ich $dogepreis aufrufe entweder der Dogepreis drin stehen oder eben keine zahl sondern "Fehler"

Gruß
 
na klar.....

und zwar ürprünglich in datei kurs.php

hier nur der Code drin

PHP:
$urldoge = "http://data.bter.com/api/1/ticker/doge_btc";
$doge = file_get_contents($urldoge);
$dogejson = json_decode($doge, true);
$dogepreis = $dogejson["last"];

in meiner header datei folgendes:

include('kurs.php');

und im content wird das ganze eben mit $dogepreis aufgerufen

mit der Lösung oben wird ja eben das echo sofort ausgegeben und durch include im header
natürlich auch oben als erstes sofort angezeigt.....----> soll es aber nicht sondern nur da wo ich es mit $dogepreis aufrufe
ich hoffe ich verstehe das bald mal kommt man sich ja schon richtig doof vor...:)
 
Zuletzt bearbeitet von einem Moderator:
Zurück