개발 Q&A

제목 curl 호출결과가 화면에 표시되는 문제에 대해 질문 드립니다.
카테고리 PHP
글쓴이 모모타로 작성시각 2017/06/21 11:56:52
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 17507   RSS

안녕하세요!

REST API를 만들고 있는데요

curl로 호출한 결과가 화면에 출력되지 않고

내부에서 결과값을 받을 수 있는 방법이 있을까요?

 

현재 A,B의 결과값이 다 보이는 상태입니다만

A의 결과값만 표시하고 싶습니다!

 

■구조

<A> 검색결과 리스트

http://a.pushwing.com/lists/

 

<B> 검색

http://b.pushwing.com/search/keyword

 

A에서 B를 curl로 호출하고

B의 검색결과에 따라 A에서 별도 처리를 하고 그 결과를 출력하고 싶음.

 

■호출코드

function curl($url)
    {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        $result = curl_exec($curl);

        curl_close($curl);

        return json_decode($result);
    }

 

■출력코드

  function result($status, $result)
    {

        $CI =& get_instance();

        $CI->output
            ->set_status_header($status)
            ->set_content_type('application/json', 'utf-8')
            ->set_output(json_encode($result, JSON_UNESCAPED_UNICODE));

        return;

    }

 

■현재 출력되는 결과

<B에서 curl로 받은 결과>

{"status":"403","code":123456,"message":"메시지"}

<A에서 출력결과>

0

<현재 출력되는 결과 >

{"status":"403","code":123456,"message":"메시지"}0

 

<원하는 결과 - A의 결과만 출력>

0

 

set_output를 의심해봅니다만..

json 형식으로 http header에 status를 전달하면서 출력하는 방법을 이것밖에 모릅니다ㅠㅠ

혹시 다른 좋은 방법이 있다면 조언 부탁드립니다!!

 다음글 json_encode 질문좀.. (2)
 이전글 mysql 질문드립니다. (16)

댓글

kaido / 2017/06/21 12:54:57 / 추천 0

output 은 출력 맞습니다.

출력을 해놓고 출력이 안되면 좋겠다는 질문이라서 무엇을 원하시는지 이해가 어렵네요.

헤더에만 값을 전송하는 방법이라면 curl 옵션 부분을 확인해 보세요.

http://php.net/manual/kr/book.curl.php

 

모모타로 / 2017/06/21 13:12:59 / 추천 0

@kaido님 답변 감사합니다!

질문이 애매했던것 같네요ㅠㅠ

현재 A,B의 결과가 다 출력되고 있는데 A의 결과만 출력하고 싶었습니다..

답변주신 curl의 옵션도 확인해보겠습니다!

카카메론바 / 2017/06/21 13:13:45 / 추천 0

curl 에 별다른 옵션 없이 호출하게 되면 결과값이 자동으로 출력 됩니다.

해당 부분을 제어하는 옵션으로 아래와 같은 옵션이 있습니다.

@kaido님이 올리신 curl 메뉴얼에서 옵션에 대한 내용을 시간내서 천천히 살펴 보시면 될것 같습니다.

<?php

// exec 실행 후 결과 자동으로 출력 안됨
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

 

모모타로 / 2017/06/21 13:18:10 / 추천 0

@카카메론바님

말씀하신 curl 옵션 추가로 A만 출력됩니다!!

kaido님 카카메론바님 정말 감사합니다!!!! (_ _)