Php 从文件\u获取\u内容转换为wp\u远程\u获取

Php 从文件\u获取\u内容转换为wp\u远程\u获取,php,json,wordpress,Php,Json,Wordpress,我在将这个函数从file_get_内容转换为wp_remote_get时遇到了一些问题,我希望能有一些见解。这看起来我很接近。下面是两种情况,我的原版使用file_get_内容,第二种使用wp_remote_get但不起作用。有人能帮我弄清楚我搞砸了什么吗 case 'one': $url = "https://api.bitfinex.com/v1/pubticker/btcusd"; $json = json_decode(file_get_conte

我在将这个函数从file_get_内容转换为wp_remote_get时遇到了一些问题,我希望能有一些见解。这看起来我很接近。下面是两种情况,我的原版使用file_get_内容,第二种使用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;

当我查看解码后的json时,if看起来像
$data['last_price']
不是数组。所以也许你想要的是:

这:

可能只是:

return $data['last_price'];

因为返回的json对象只是看起来是财务数据的一个数组。这也是您在第一个示例中使用它的方式。

当我查看解码的json时,if看起来像
$data['last_price']
不是数组。所以也许你想要的是:

这:

可能只是:

return $data['last_price'];
因为返回的json对象只是看起来是财务数据的一个数组。这也是您在第一个示例中使用它的方式。

您的
打印($data)
给出了“stdClass对象”,但您正在使用

print_r( $data['last_price'] );
它什么也没给你。 因此,要获得对象,请尝试

$test=$data->last_price;
print_r($test);
希望这对您有所帮助。

您的
打印($data)
提供了“stdClass对象”,但您正在使用

print_r( $data['last_price'] );
它什么也没给你。 因此,要获得对象,请尝试

$test=$data->last_price;
print_r($test);

希望这能对您有所帮助。

您是否打印了$request下的所有变量,以查看其中的内容?“return$data”似乎破坏了网站。不会加载其他PHP元素。不会返回,变量为echo,数组为print_r()或var_dump()。调试是你的朋友。如果变量和数组的内容不是您期望的内容,那么您可以找出原因。首先找出原因。使用print_r($data)会给我“stdClass对象([mid]=>0.00012645[bid]=>0.00012649=>0.00012649[last_price]=>0.00012649[low]=>0.00009097[high]=>0.00016183[volume]=>32064835.81619025[timestamp]=>1504582363.108115698”),但使用print_r($data['last_price')似乎破坏了脚本并为空。您是否打印了$request中的所有变量以查看其中的内容?“return$data”似乎破坏了站点。不会加载其他PHP元素。不会返回,变量为echo,数组为print_r()或var_dump()。调试是你的朋友。如果变量和数组的内容不是您期望的内容,那么您可以找出原因。首先看看是什么。使用print_r($data)给了我“stdClass对象([mid]=>0.00012645[bid]=>0.00012649=>0.00012649[last_price]=>0.0000949[low]=>0.00009097[high]=>0.00016183[volume]=>32064835.81619025[timestamp]=>1504582363.108115698]),但是使用print_r($data['last_price')似乎打破了脚本,是空白的。谢谢,但是当我这样做的时候,它似乎破坏了脚本,什么也没有加载。更确切地说,控制台中出现了500个错误。实际上,这是有效的!我只需要在json_解码中添加true。非常感谢。谢谢,但是当我这么做的时候,它似乎破坏了脚本,没有加载任何内容。更准确地说,控制台中出现了500个错误。实际上,这是有效的!我只需要在json_解码中添加true。非常感谢。这并不能解决问题中的问题,它更适合评论。请仅在问题解决实际问题时添加答案,并且可以提供其他答案中未包含的解决问题的替代方法。这并不能解决问题中的问题,更适合于发表评论。请仅在问题解决实际问题时添加答案,并且可以提供其他答案中未涵盖的解决问题的替代方法。