我目前开发了自己的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,但没有任何作用:(
答案 0 :(得分:0)
最有可能的是,传递给file_get_contents
的字符串有一个特殊的字符,并且会在中间某处结束你的字符串。
来自php manual:
如果您要打开包含特殊字符(例如空格)的URI,则需要使用
urlencode()
对URI进行编码。