如何在php中调用JSON URL,其中包括查询中的空格


How to call the JSON URL in php which includes spaces in query

当我向tmdb.org发出xml请求时,我使用了这个

$movie_name="Dabangg 2";
    $xml = simplexml_load_file("http://api.themoviedb.org/2.1/Movie.search/en/xml/accd3ddbbae37c0315fb5c8e19b815a5/"$movie_name"");

,它正在工作!!

现在我必须更改URL,因为响应是JSON而不是xml

我已经把它改成

<?php
$movie_name="Dabangg 2";
$url="http://api.themoviedb.org/3/search/movie?api_key=accd3ddbbae37c0315fb5c8e19b815a5&query=$movie_name";
$json = file_get_contents($url);
var_dump($json);
?>

但是行不通

如果你搜索

http://api.themoviedb.org/3/search/movie?api_key=accd3ddbbae37c0315fb5c8e19b815a5&query=Dabangg 2

在浏览器上,你会得到结果。

Warning: file_get_contents(http://api.themoviedb.org/3/search/movie?api_key=accd3ddbbae37c0315fb5c8e19b815a5&query=Dabangg 2) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 BAD_REQUEST in /home/wwww/public_html/test/movie.php on line3 

请帮帮我

Try with

urlencode($movie_name);

这个函数在编码要在a中使用的字符串时非常方便查询部分的URL,作为一种方便的方式传递变量到下一个页面。

看这个:http://codular.com/curl-with-php

下面的代码:
<?php
 $movie_name="Dabangg 2";
$movie_name = urlencode($movie_name);
$url="http://api.themoviedb.org/3/search/movie?api_key=accd3ddbbae37c0315fb5c8e19b815a5&query=$movie_name";
 // Get cURL resource
 $curl = curl_init();
 // Set some options - we are passing in a useragent too here
 curl_setopt_array($curl, array(
     CURLOPT_RETURNTRANSFER => 1,
     CURLOPT_URL => $url,
     CURLOPT_USERAGENT => 'Codular Sample cURL Request'
 ));
 // Send the request & save response to $resp
 $resp = curl_exec($curl);
 // Close request to clear up some resources
 curl_close($curl);
 var_dump($resp);
 ?>