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


PHP Warning : file_get_contents failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

我使用Codeigniter建立了一个本地DVD数据库,其中包含电影名称等。我想做的是从这个IMDB API加载更多电影数据。

但是我收到以下错误:

遇到 PHP 错误

严重性:警告

消息:file_get_contents(http://www.imdbapi.com/?i=&t=2 速度与激情)[函数.文件获取内容]:无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求

文件名:控制器/DVD.php

行号:92

将此 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);

编辑:进一步研究这一点。单个单词的电影名称似乎加载正常,所以我假设我需要以某种方式将"+"向下钻取到空格中?

尝试urlencode()

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

你可以考虑在电影标题上运行urlencode()。《速度与激情2》中的空间有可能被留下了。

您的链接应如下所示。

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

不是这个。

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