php file_get_contents不发送所有参数

时间:2016-05-02 15:37:14

标签: php mysql json

我目前开发了自己的API,因此我可以使用两台服务器。一个服务器询问每个file_get_contents和GET参数,以便另一个可以用JSON回答。在一个请求包含许多参数之前,一切正常。

$detailjson = file_get_contents("http://domain/api.php?id=$id&api=detailsuche&sart=$sart&latq=$latq&lonq=$lonq&umkreis=$umkreis&location=$location&warmmiete=$warmmiete&mietemin=$mietemin&mietemax=$mietemax&wohnqmmin=$wohnqmmin&wohnqmmax=$wohnqmmax&zimmermin=$zimmermin&zimmermax=$zimmermax&grundqmmin=$grundqmmmin&grundqmmax=$grundqmmax&baujahrmin=$baujahrmin&baujahrmax=$baujahrmax&garage=$garage&haustiere=$haustiere&badezimmer=$badezimmer&$haustyp&etagenallmin=$etagenallmin&etagenallmax=$etagenallmax&etagenmin=$etagenmin&etagenmax=$etagenmax&vtour=$vtour&sort=$sort"); 

目前提交了以下内容:

  

阵   (       [latq] => 49.3134606       [lonq] => 6.752286499999968       [umkreis] => 50       [location] =>萨尔路易斯,德国       [sart] => 4       [warmmiete] => ñ       [6] =>       [7] =>       [8] =>       [9] =>       [10] =>       [11] =>       [12] =>       [13] =>       [14] =>       [15] =>       [16] =>       [17] =>       [18] =>       [haustyp] => haustyp [0] = Dachgeschoss       [20] =>       [21] =>       [22] =>       [23] =>       [24] =>       [25] =>       [26] =>   )

但JSON响应如下:

  

[" 49.3134606"" 6.752286499999968"" 50""萨尔路易,"" 4&# 34;,NULL,"""""""""&#34 ;, """""""""""& #34;"",NULL,"""""""" """"""]

你看:为什么我的位置被切断,warmmiete = null,为什么haustyp为null?

在JSON方面,我使用了 $XX = htmlspecialchars($_GET['XX']);

在我的浏览器中使用GET参数时,我得到了正确的数组。所以我的file_get_contents打破了一些东西...... 我尝试了url encode和http_build_query,但没有任何作用:(

1 个答案:

答案 0 :(得分:0)

最有可能的是,传递给file_get_contents的字符串有一个特殊的字符,并且会在中间某处结束你的字符串。

来自php manual

  

如果您要打开包含特殊字符(例如空格)的URI,则需要使用urlencode()对URI进行编码。