테스트 사이트 - 개발 중인 베타 버전입니다

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

flyingDOG 3년 전 조회 1,917

대한통운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개

채택된 답변
+20 포인트
3년 전

</p>

<p>$objToken->DATA[0]->CRG_ST;</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

f
flyingDOG
3년 전
감사합니다.
[0]을 DATA뒤에 추가하는 것이었군요.
덕분에 해결되었습니다.
f
flyingDOG
3년 전
제가 드린 첫번째 질문도 해결이 가능하시다면 알려주시면 안될까요?

댓글을 작성하려면 로그인이 필요합니다.

3년 전

1.

</p>

<p>  CURLOPT_HTTPHEADER => array(

    'CJ-Gateway-APIKey: ' . <u><strong>$XXXXXX</strong></u>,

    'Content-Type: application/json',

    'Accept: application/json'

  ),</p>

<p>

 

2.

</p>

<p>  CURLOPT_HTTPHEADER => array(

    "CJ-Gateway-APIKey: <u><strong>$XXXXXX</strong></u>",

    'Content-Type: application/json',

    'Accept: application/json'

  ),</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
3년 전

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

 

이걸 참고해보시면

 

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

true로 할경우

리턴값이 배열로 됩니다.

 

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

 

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

 

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

일반적인 PHP라면

 

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

 

추가적으로

 

is_array()

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

f
flyingDOG
3년 전
답변 감사합니다.
알려주신 사항도 공부해봐야겠네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인