요즘 API를 통해서 값을 가져오는것을 해보려고 하는데,만만찮네요.

 

우선 값을 가져오는것은.. 사용자가 input을 줘서 그 값을 가져오는건데요.

예를 들어서.. 사용자가 ABC를 검색하면

 

api.domains/ABC 에 접근하면 json값이 나오게 됩니다.

 

근데 이 값이 항상 정렬되면 좋겠지만..랜덤하게 막 출력될 수 있어서..

어떻게 하면 특정 값을 가져올 수 있을지 궁금합니다.

 

json 내용은 아래와 같아요

 

{"result":200,
"data":{
    "grade":99,
    "clanName":"클랜명",
    "win":5,
    "lose":8,
    "stop":1,
    "nickname":"닉네임",
    "rp":1938,
    "maxRp":1938,
    "accuseCnt1":72,
    "accuseCnt2":0,
    "accuseCnt3":0,
    "rpGradeMedal":"SILVER",
    "rpGradeLevel":"1st",
    "tp":0,
    "maxTp":0,
    "tpGradeMedal":"",
    "tpGradeLevel":""
    }
}

 

 

 

 

  • ?
    JSON 문자열에서 값을 가져오시는 것을 원하시는거라면....

    json_decode() 함수를 사용하시면 됩니다.

    $json = json_decode($response);
    return $json->data->nickname;

    같은 방식으로요.
    두번째 인자로 true 값을 넣어주면 배열로 접근 가능합니다.
  • ? profile
    외부에서 가져오는 API의 경우 $response = "URL주소"; 를 입력해도 될까요?
  • ? profile
    $response = file_get_contents('URL주소');

    $json = json_decode($response);
    return $json->data->nickname;

    이렇게 사용하니 뭔가 백지가 되어버렸네요. 고민해봐야겠어요
  • profile ?
    외부 URL의 경우 curl 같은 방식으로 데이터를 가져오셔야 합니다.

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
  • ? profile
    뭔가 많군요.

    바로 뭔가 보이진 않아서 허무하지만,계속 공부해야겠네요
    재미있네요!

    감사합니다