2013-09-05 1 views
0

여기에서 json 데이터를 가져오고 싶습니다. JSON url;url이 브라우저를 통해 JSON 데이터를 반환하지만 왜곡되지 않은 이유는 무엇입니까 (CURLOPT_RETURNTRANSFER가 true)?

나는 모든 JSON 데이터를 볼 수 있습니다 크롬을 사용하지만, (, 그것은 아무것도하지 않습니다 CURLOPT_FOLLOWLOCATION이 false 인 경우)가 리디렉션 및 손실 얻을 것으로 보인다 (코드 아래) 컬 사용 :

$json_url = 'http://cartolafc.globo.com/mercado/filtrar.json?page=1&order_by=media&status_id=7&posicao_id=1'; 
      $ch = curl_init($json_url); 
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
      //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
      //even killing the redirect process it does not return JSON data 
      curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7"); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      $data = curl_exec($ch); 
      $dataDecoded = json_decode($data); 
      print_r($dataDecoded); 

내가 시뮬레이션에 대해 뭔가를보고을 컬이있는 브라우저이지만 에이전트를 강타하면 속임수를 쓰게됩니다. 어쩌면 쿠키를 사용하는 서버에 대해 뭔가를 ... 나는 정말로 모른다. 오늘 나는 다른 해답을 보았지만 문제를 해결하지 못했습니다. 내가 놓친 게 있니?

감사합니다.

+0

단순히 말아 올린 컬이라고 가정합니다. 최소한 if ($ data === false) {die (curl_error ($ ch)); }'그것을 처리하고,'$ data'가 ** 전에 ** 디코드하려고하는지 확인하십시오. 어쨌든 그것이 손상되면, 당신은 또 다른 부울 false를 얻을 것입니다. –

+0

브라우저에서 JSON URL을 열면 http://sportv.globo.com/site/cartola-fc/로 리디렉션됩니다. 이것이 올바른 URL이라고 확신합니까? – mhenke

+0

방금 ​​Google 크롬으로 열었으며 JSON 데이터를 표시하고 있습니다. 마지막에 1을 ​​넣으려고해도 여전히 리디렉션됩니까? – Bagata

답변

0

잘못된 변수 사용 :

 $data = curl_exec($ch); 
     ^^^^^--- data here 
     $dataDecoded = json_decode($json); 
            ^^^^--- not $data here 

그래서 당신은 존재하지 않는 변수를 해독하려고 노력하고 있습니다.

+0

죄송합니다. 이미 실행중인 코드에는 수정 사항이 있습니다. 여기에 넣는 것을 잊어 버렸습니다. 내 실수. 이제 질문 코드가 수정되었습니다. 내 문제에 대한 대답은 CURLOPT_SLL_VERIFYPEER를 사용하고 있습니다. 어쨌든 고마워! – Bagata

관련 문제