2012-06-16 4 views
1

저는 Codeigniter를 사용하여 로컬 DVD 데이터베이스를 만들었습니다. 필름 이름 등이 포함되어 있습니다. 내가하고자하는 것은 this IMDB API에서 필름에 대한 더 많은 데이터를로드하는 것입니다.PHP 경고 : file_get_contents가 스트림을 열지 못했습니다 : HTTP 요청이 실패했습니다! HTTP/1.1 400 불량 요청

PHP는 오류가 발생했습니다

심각도 :

메시지 경고 : file_get_contents를 (http://www.imdbapi.com/?i 나는 다음과 같은 오류를 얻고있다 그러나

= & t = 2 Fast 2 Furious) [function.file-get-contents] : 스트림 열기 실패 : HTTP 요청 실패! HTTP/1.1 400 잘못된 요청

파일 이름 :

이 줄 번호

컨트롤러/dvd.php : 주소 표시 줄에 92

복사 this URI는 JSON 데이터를 반환하지만 내 페이지를로드 할 때 제공 그 오류.

나는이 특정 사이트에서 localhost를 실행 중이다. Codeigniter에 익숙해지기 시작했습니다.

내 코드는 ....

  // Send Query To IMDB Api 

     $film_q = $film_name[0]->title; 
     $imdb_uri = "http://www.imdbapi.com/?i=&t=$film_q"; 
     $json = file_get_contents($imdb_uri); 
     $json = json_decode($json); 

     print_r($json); 

편집이에 더 찾고 있습니다. 싱글 워드 영화의 이름이 좋아 보인다. 그래서 나는 공간에 "+"드릴 다운해야 할 필요가 있다고 생각하고 있단 말인가?

답변

5

urlencode()을 시도 :

$film_q = urlencode($film_name[0]->title); 
$imdb_uri = "http://www.imdbapi.com/?i=&t=$film_q"; 
+1

전체 URL을 인코딩하지 마십시오. 실제 메타 핸들이 삭제됩니다. $ film_q 부분 만 인코딩합니다. –

+0

안녕하세요, 이제는 "정의되지 않은 함수 url_encode() 호출"이 발생합니다. – StuBlackett

+0

@mgraph : 훨씬 좋습니다. –

1

당신은 영화 제목에를 urlencode()를 실행하는 것이 좋습니다. "2 Fast 2 Furious"의 공백이 남겨진 것일 수 있습니다.

링크는 다음과 같아야합니다.

http://www.imdbapi.com/?i=&t=2%20Fast%202%20Furious 

아닙니다.

http://www.imdbapi.com/?i=&t=2 Fast 2 Furious 
관련 문제