PHP strpos не проверяет несколько элементов правильно
Я втягиваю живые цены через api и проверяю значение CHANGEPCT24HOUR.
Если значение отрицательное, то я хочу стрелку вниз, если положительное-зеленую стрелку вверх.
Приведенный ниже код работает неправильно. Текущие значения: BTC: 8.32 & ETH: -2.86
Код:
$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;
Он показывает стрелку вверх для обоих. Однако, если я изменю проверку $eth strpos
на эту
if(strpos($ethp,'-') == FALSE)
а затем переключить порядок или $eth
вокруг него работает нормально.
Я не знаю. узнайте, почему оригинальный метод strpos не будет работать должным образом для второй проверки.