【问题标题】:Parsing the result from the result - php从结果中解析结果 - php
【发布时间】:2016-02-28 18:30:20
【问题描述】:

我怎样才能得到这个响应中的费用值

我正在将邮递员 api 集成到 php 应用程序中,因为我正在使用来自 php 的 curl 调用,

这里是代码

<?php

class PostMates extends Controller {

public function getDeliveryQuote()
    {
            $url = "https://api.postmates.com/v1/customers/cus_XX/delivery_quotes";

    $uname = "70538e7";
    $pwd = "xxxx";

    $process = curl_init($url);
    curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded','Accept: application/json'));
    curl_setopt($process, CURLOPT_HEADER, 1);
    curl_setopt($process, CURLOPT_USERPWD, $uname . ":" . $pwd);
    curl_setopt($process, CURLOPT_TIMEOUT, 30);
    curl_setopt($process, CURLOPT_POST, 1);
    curl_setopt($process, CURLOPT_POSTFIELDS, "dropoff_address=20 McAllister St, San Francisco, CA 94102&pickup_address=101 Market St, San Francisco, CA 94105");
    curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false);
    $return = curl_exec($process);

    curl_close($process);

    //var_dump($return);
    print_r($return);


    }

}

当我执行 print_r 和 var_dump 时,下面给出的是响应。

我如何从 resonse 中获得费用金额。

我尝试了 $response->fee 和 $resonse['fee'],但没有得到结果。

我怎样才能得到它。请帮忙

HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Sun, 28 Feb 2016 18:26:14 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d7e72569c2358ea8636fac1a1054815081456683973; expires=Mon, 27-Feb-17 18:26:13 GMT; path=/; domain=.postmates.com; HttpOnly
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
CF-RAY: 27be2d3566b42fd5-MAA

{"kind": "delivery_quote", "fee": 750, "created": "2016-02-28T18:26:14Z", "expires": "2016-02-28T18:31:14Z", "currency": "usd", "duration": 60, "dropoff_eta": "2016-02-28T19:31:14Z", "id": "dqt_KhBvlVTh8vQ8N-"}

【问题讨论】:

    标签: php laravel curl postmates


    【解决方案1】:

    给你。你必须解析结果。

    $result = json_decode($result,true); //decodes JSON to associative array
    
    echo $result['fee']; //750
    

    或者,如果您想使用对象格式

    $result = json_decode($result); //decodes JSON to an object
    
    echo $result->fee; //750
    

    编辑

    您还需要将CURLOPT_HEADER 设置为false

    这包括输出中的响应标头

    curl_setopt($process, CURLOPT_HEADER, false);
    

    【讨论】:

    • 谢谢,但我总是收到Trying to get property of non-object
    • 啊,与 curl 冗长相比,这是实际的 $request 内容。改变事情的输出 - 检查我的答案的另一半答案的编辑
    猜你喜欢
    • 2020-12-11
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多