Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将Curl响应转换为Json,以便在前端使用它?_Php_Laravel_Curl - Fatal编程技术网

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

Php 如何将Curl响应转换为Json,以便在前端使用它?,php,laravel,curl,Php,Laravel,Curl,我有一个函数,它使用curl_multi发出几个GET请求。但是,我不知道如何将响应转换为JSON,以便在前端访问它。通常我使用json_解码,但是这次不起作用。可能是因为我试图解码整个字符串数组,而不是单个字符串?。当前,前端的响应如下所示: 这是我的功能: public function getVisited($username){ $user = User::where('username', $username)->first(); $visitedPlaces =

我有一个函数,它使用curl_multi发出几个GET请求。但是,我不知道如何将响应转换为JSON,以便在前端访问它。通常我使用json_解码,但是这次不起作用。可能是因为我试图解码整个字符串数组,而不是单个字符串?。当前,前端的响应如下所示:

这是我的功能:

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);
}

如果您希望从curl_multi_getcontent$c获得一个json字符串,那么您应该解码它:

$result[$id] = json_decode(curl_multi_getcontent($c));
然后它应该被适当地编码在响应中