为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 Curl 响应转换为 Json 以便我可以在前端使用它?

如何将 Curl 响应转换为 Json 以便我可以在前端使用它?

PHP
小怪兽爱吃肉 2021-06-28 10:55:25
我有一个使用 curl_multi 发出多个 GET 请求的函数。但是,我不知道如何将响应转换为 JSON,以便我可以在前端访问它。通常我使用 json_decode(),但是,这次它不起作用。也许是因为我试图解码整个字符串数组而不是单个字符串?。目前,前端的响应如下所示:这是我的功能:public function getVisited($username){    $user = User::where('username', $username)->first();    $visitedPlaces = $user->visitedPlaces;    $finalPlaces = [];    foreach ($visitedPlaces as $visitedPlace) {        $url = "https://maps.googleapis.com/maps/api/place/details/json?placeid=" . $visitedPlace->place_id . "&key=AIzaSyDQ64lYvtaYYYNWxLzkppdN-n0LulMOf4Y";        array_push($finalPlaces, $url);    }    $result = array();    $curly = array();    $mh = curl_multi_init();    foreach ($finalPlaces as $id => $d) {        $curly[$id] = curl_init();        $url = $d;        curl_setopt($curly[$id], CURLOPT_URL,            $url);        curl_setopt($curly[$id], CURLOPT_HEADER,         0);        curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);        curl_setopt($curly[$id], CURLOPT_SSL_VERIFYPEER, 0); // Skip SSL Verification        curl_multi_add_handle($mh, $curly[$id]);    }    $running = null;    do {        curl_multi_exec($mh, $running);    } while($running > 0);    foreach($curly as $id => $c) {        $result[$id] = curl_multi_getcontent($c);        curl_multi_remove_handle($mh, $c);    }    curl_multi_close($mh);    return response()->json([        'sights' => $result    ], 201);}
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

如果您期望来自 json 字符串,curl_multi_getcontent($c)那么您应该对其进行解码:

$result[$id] = json_decode(curl_multi_getcontent($c));

然后它应该在响应中适当地编码。


查看完整回答
反对 回复 2021-07-02
  • 1 回答
  • 0 关注
  • 605 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信