대한통운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개 / 댓글 3개
$objToken->DATA[0]->CRG_ST;
답변에 대한 댓글 2개
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()
를 적절히 체크해보시는것도 변수활용방법에 다양성을 기할수있지 않을까 싶습니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
[0]을 DATA뒤에 추가하는 것이었군요.
덕분에 해결되었습니다.