PHP字符串specialchars

时间:2015-09-12 09:25:39

标签: php string curl html-entities

我正在通过Android上的应用设置一个可用的小型网络服务。 服务器中的功能如下:

 $lat=43.0552592;
 $lng=12.4483577;
 $radius=2000;

    $url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=italian&location=".$lat.",".$lng."&radius=".$raidus."&types=restaurant&sensor=false&key=".$apiKey;

    $urlW = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=italian&location=43.0552592,12.4483577&radius=2000&types=restaurant&sensor=false&key=XXXXxxxXXxxXXxxxxXXX";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    // Set so curl_exec returns the result instead of outputting it.
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Get the response and close the channel.
    $response = curl_exec($ch);

return $response;

问题在于,如果我使用$url查询Google(如上例所示),则会返回带有'INVALID REQUEST'的JSON,但如果第一个curl_opt处的查询已完成$curlW $url就像魅力一样 在我发现的调试过程中,&返回,curl_init转换{{strong>之前 &amp!} gchar ...! 所以我已经尝试了几乎每个PHP字符串函数来强制每个&将每个&实体解码或替换为& 只是没有任何结果。
有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你做错了什么,

$url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=italian&location=".$lat.",".$lng."&radius=".$raidus."&types=restaurant&sensor=false&key=".$apiKey

应该是

$url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=italian&location=".$lat.",".$lng."&radius=".$radius."&types=restaurant&sensor=false&key=".$apiKey;

但是我不认为这就是问题所在,尝试使用file_get_contents()而不是curl,所以$ response将是这样的:

$response = file_get_contents($url);