json으로 받은 값을 다른 cURL headers의 value에 변수로 넣기

json으로 받은 값을 다른 cURL headers의 value에 변수로 넣기

QA

json으로 받은 값을 다른 cURL headers의 value에 변수로 넣기

답변 3

본문

대한통운api에 연결중인데 제가 너무 몰라서 여쭤봅니다.

 

cURL로 되어있구요.

1페이지에서 대한통운쪽으로 부터 키값을 받아왔습니다. 받아온 것을 변수로 저장했습니다.

2페이지에서 받은 키값을 CURLOPT_HTTPHEADER와 CURLOPT_POSTFIELDS에 넣어야합니다.

 

2페이지에서

  CURLOPT_HTTPHEADER => array(
    'CJ-Gateway-APIKey: $XXXXXX',
    'Content-Type: application/json',
    'Accept: application/json'
  ),

이런 형태로 1페이지에서 받은 키값의 변수를 2페이지에 넣고 싶은데요. 변수처리를 어떻게 해야하나요?

 

그리고 1페이지에서 받은 값은

{"RESULT_CD":"S","RESULT_DETAIL":"Success","DATA":{"TOKEN_NUM":"XXXXXXXXXXXXXXXXX~~"}}

이와 같아서 변수로 저장할때

curl_close($curlToken);
echo $responseToken;

$objToken = json_decode($responseToken);

$token_num = $objToken->DATA->TOKEN_NUM; 

이렇게 해서 정상적으로 값을 불러냈습니다만,

2페이지에서 받은 값은 

{"RESULT_CD":"S","RESULT_DETAIL":"Success","DATA":[{"CRG_ST":"XXXXXXXXXXXXXXXXX~~"}]}

이와 같이 DATA에 [ ] 이 추가되어 있습니다.

그래서 $objTrace->DATA->CRG_ST; 로는 값을 불러낼수 없었습니다.

CRG_ST 앞뒤로 []도 붙여보고 해봤습니다만...

어떤 형태로 불러내서 변수로 저장할 수 있는지 알려주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 3


$objToken->DATA[0]->CRG_ST;

1.


  CURLOPT_HTTPHEADER => array(
    'CJ-Gateway-APIKey: ' . $XXXXXX,
    'Content-Type: application/json',
    'Accept: application/json'
  ),

 

2.


  CURLOPT_HTTPHEADER => array(
    "CJ-Gateway-APIKey: $XXXXXX",
    'Content-Type: application/json',
    'Accept: application/json'
  ),

https://zetawiki.com/wiki/PHP_json_decode()

 

이걸 참고해보시면

 

json_decode의 두번째 인자값이 기본적으로 생략인데

true로 할경우

리턴값이 배열로 됩니다.

 

배열로 만드신후에 접근해서 사용해보세요

 

그누보드 기반에서 사용하시는것이라면

 

print_r2($objTrace);로 확인해보시고

일반적인 PHP라면

 

var_dump($objTrace);로 확인해보시는게 좋을듯 합니다.

 

추가적으로

 

is_array()

를 적절히 체크해보시는것도 변수활용방법에 다양성을 기할수있지 않을까 싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 4
© SIRSOFT
현재 페이지 제일 처음으로