api를 통해 실시간 가격을 받고 CHANGEPCT24HOUR 값을 확인하고 있습니다.PHP가 여러 항목을 올바르게 검사하지 않습니다.
값이 음수라면 아래쪽 화살표를 원한다면 양수이면 녹색 위쪽 화살표가됩니다.
아래 코드는 제대로 작동하지 않습니다. 8.32 & ETH : 현재 값은 BTC 있습니다 -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 메소드가 두 번째 검사를 위해 제대로 작동하지 않는 이유는 모르겠다.
사용 === (트리플 같음). strpos가 0을 반환하면 0은 == false입니다. 그래서 더 잘 ===. –
strpos가 스타터를 검사 할 때 엄격한 타입 ('===')을 사용하십시오. – Andrew
설명서의 경고를 확인하십시오. 물론 – jeroen