当查询在PHP中有空格时,无法检索jSON数据

时间:2014-06-01 11:25:49

标签: php json

我想做什么

我尝试使用 RottenTomatoes API 来检索有关电影的信息。

如果我搜索 Frozen ,我会使用此脚本:

$q = 'Frozen';

$json_link = 'http://api.rottentomatoes.com/api/public/v1.0/movies.json?q='.$q.'&page_limit=10&page=1&apikey=%myAPIkey%';
$json_info = file_get_contents($json_link);

$data = json_decode($json_info,true);

$results = $data['movies'];

foreach($results as $result){
    echo $result['title'].'<br/>';
}

并返回电影列表:

Frozen
Frozen
Frozen River
The Frozen Ground
Frozen Land (Paha maa)
Frozen Assets
Frozen Days (Yamim Kfuim)
Frozen City (Valkoinen Kaupunki)
Frozen Stupid

这适用于所有单字查询。

什么不工作

不幸的是,在搜索包含多个单词的词语时,例如 Harry Potter ,我根本无法检索任何数据。

我尝试了$q='Harry Potter'$q='Harry%20Potter',但都没有返回任何值。

var_dump上使用$json_info时,它只是显示:

bool(false)

但是,如果我访问网址(http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=harry%20potter&page_limit=10&page=1&apikey=%myAPIkey%),我会看到与搜索字词相关联的所有20部电影的完整列表:

Search result for multi-word query

如果网址明显正确,我怎样才能在PHP中检索此信息?

1 个答案:

答案 0 :(得分:0)

尝试urlencode

$q=urlencode("Harry Potter")