我在将此函数从file_get_contents转换为wp_remote_get时遇到了一些麻烦,我希望能够提供一些见解。这似乎我很亲密。下面是两种情况,我的原始使用file_get_contents,第二种使用wp_remote_get但不起作用。任何人都可以帮我弄清楚我搞砸了什么吗?
case 'one':
$url = "https://api.bitfinex.com/v1/pubticker/btcusd";
$json = json_decode(file_get_contents($url), true);
$price = $json["last_price"];
return $price;
break;
case 'two':
$request = wp_remote_get( 'https://api.bitfinex.com/v1/pubticker/btcusd' );
if( is_wp_error( $request ) ) {
return false;
}
$body = wp_remote_retrieve_body( $request );
$data = json_decode( $body );
if( ! empty( $data ) ) {
foreach( $data['last_price'] as $price ) {
return $price;
}
}
break;
答案 0 :(得分:1)
当我查看解码的json时,如果foreach( $data['last_price'] as $price ) {
return $price;
}
看起来不是数组。所以也许你想要的是:
此:
return $data['last_price'];
可能只是:
import { NgModule, ErrorHandler } from '@angular/core';
import { IonicErrorHandler } from 'ionic-angular';
@NgModule({
providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }]
})
class AppModule {}
因为返回的json对象只是一个看起来像财务数据的数组。这也是你在第一个例子中的表现。
答案 1 :(得分:-1)
您的print_r( $data )
会提供您的“stdClass对象”,但您正在使用
print_r( $data['last_price'] );
它什么都没给你。 所以为了获得对象尝试
$test=$data->last_price;
print_r($test);
希望这会对你有所帮助。