2012-06-16 84 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

不要編碼整個網址,這將垃圾真正的metachars。僅編碼$ film_q部分。 –

+0

嗨,在我現在正在「調用未定義的函數url_encode()」 – StuBlackett

+0

@mgraph:好得多。 –

1

你可能會考慮運行進行urlencode()的電影標題。 「2 F​​ast 2 Furious」中的空間可能會被留下。

您的鏈接應該是這樣的。

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

不是這個。

http://www.imdbapi.com/?i=&t=2 Fast 2 Furious 
相關問題