PHP警告:file_get_contents无法打开流:HTTP请求失败! HTTP / 1.1 400错误请求

时间:2012-06-16 17:17:17

标签: php json

我使用Codeigniter建立了一个本地DVD数据库,有电影名称等。我要做的是从this IMDB API加载更多的电影数据。

但是我收到以下错误:

  

遇到PHP错误

     

严重性:警告

     

消息:file_get_contents(http://www.imdbapi.com/?i=&t=2 Fast 2 Furious)[function.file-get-contents]:无法打开流:HTTP请求失败! HTTP / 1.1 400错误请求

     

文件名:controllers / dvd.php

     

行号:92

this URI复制到地址栏会返回json数据,但是当我在页面中加载时,它会给我发错误。

值得注意的是,我在这个特定网站的本地主机上运行。因为我只是熟悉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);

编辑:进一步研究。单字电影名称好像加载好,所以我假设我需要在空格中向下钻一个“+”?

2 个答案:

答案 0 :(得分:6)

尝试urlencode()

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

答案 1 :(得分: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