2012-04-17 2 views
1

클래스 프로젝트의 경우 다른 웹 사이트에서 데이터를 가져와야합니다. 나는 (크레딧 내 스크립트에 그들에게 주어진) GiantBomb.com에서 주어진 게임과 비슷한 게임PHP의 file_get_contents가 작동하지 않습니다.

// $gameLink = "/call-of-duty-black-ops/61-26423/"; 
$html = file_get_contents("http://www.giantbomb.com" . urlencode($gameLink) . "games_similar/"); 
echo $html; 

이 아무 것도 반환하지 않습니다를 당기 들었다. 그러나

, $ gameLink가 수동으로 입력하는 경우 : 이제

$html = file_get_contents("http://www.giantbomb.com/call-of-duty-black-ops/61-26423/games_similar/"); 
echo $html; 

는 제대로 결과를 반환합니다. 내 코드에 무슨 문제가 있습니까? 나는 $ gameLink 변수뿐만 아니라 전체 링크에서 urlencode()을 수행했지만 여전히 실패했다. 누구든지 어떤 제안이 있습니까?

+0

... 그건'urlencode()'가 ... –

+0

@Sunny가 아니라'숙제 '라는 클래스와 관련된 질문에 반드시 태그를 붙이십시오. – 0b10011

+0

@bfrohs .. 방금 변경했습니다. 알려 줘서 고마워. – Sunny

답변

5

html에 포함 된 링크 만 urlencode해야합니다. file_get_contents()에 전달 된 링크를 urlencode하지 마십시오.

+0

와우 그게 내 바보 같았 어. 지금은 잘 작동합니다. 고맙습니다! :) – Sunny

0

urlencode()가 -_를 제외한 모든 영숫자가 아닌 문자를 인코딩하기 때문입니다.

이것은 슬래시가 % 2F로 인코딩된다는 것을 의미합니다. 그러나 hegemon이 위에 언급 했으므로 file_get_contents()에 전달 된 링크를 urlencode하지 마십시오.

관련 문제