2012-06-16 79 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 
相关问题