Ich ziehe Live-Preise über eine API ein und überprüfe den CHANGECT24HOUR-Wert.PHP strpos prüft mehrere Artikel nicht korrekt
Wenn Wert negativ ist, möchte ich einen Pfeil nach unten, wenn es positiv ist, würde einen grünen Pfeil nach oben geben.
Der folgende Code funktioniert nicht richtig. Die aktuellen Werte sind BTC: 8,32 & ETH: -2,86
Code:
$json_string = file_get_contents("https://myapi.com/?fsyms=BTC,ETH,DASH,LTC,NEO,XRP&tsyms=USD");
$parsed_json = json_decode($json_string, true);
$btcp = $parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
$ethp = $parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];
if(strpos($btcp,'-') == FALSE){
$btc = "<i class=\"fa fa-fw fa-arrow-up\" style=\"color:green\"></i>".$parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
} else {
$btc = "<i class=\"fa fa-fw fa-arrow-down\" style=\"color:red\"></i>".$parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
}
if(strpos($ethp,'-') == FALSE){
$eth = "<i class=\"fa fa-fw fa-arrow-up\" style=\"color:green\"></i>".$parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];
} else {
$eth = "<i class=\"fa fa-fw fa-arrow-down\" style=\"color:red\"></i>".$parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];
}
$livechange = "BTC : ".$btc.'<br />';
$livechange .= "ETH : ".$eth;
echo $livechange;
Es ist ein Pfeil nach oben für beide zeigen. Aber wenn ich die $eth strpos
zu diesem if(strpos($ethp,'-') == FALSE)
ändern und dann die Bestellung wechseln oder die um es funktioniert gut.
Ich weiß nicht, warum die ursprüngliche strpos-Methode für die zweite Überprüfung nicht ordnungsgemäß funktioniert.
Verwendung === (triple equals). Wenn strpos 0 zurückgibt, dann ist 0 == false. Also benutze besser ===. –
Verwenden Sie den strikten Typ ('==='), wenn 'stros' nach Startern sucht. – Andrew
Überprüfen Sie die Warnung in der Anleitung ... – jeroen