2016-05-02 18 views
1

私は現在自分自身のAPIを開発していますので、2台のサーバを使用できます。 1つのサーバーがfile_get_contentsとGETパラメーターごとに要求して、他のサーバーがJSONで応答できるようにしています。すべてのパラメーターが1つの要求まですべて正常に動作します。php file_get_contentsはすべてのパラメータを送信しません

$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 [位置] =>ザールルイ、ドイツ [SART] => 4 [warmmiete] => N [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」「50」「ザールルイ」「4」「null」「」「」「」

次のように表示されます:なぜ私はですか? location cut off、warmmiete = null、なぜhaustypはnullですか? JSON側の

私は私のブラウザでGETパラメータを使用している場合、私は戻って、正しい配列を取得
$XX = htmlspecialchars($_GET['XX']);

を使用しています。だから、何か私のfile_get_contentsで破壊された... 私はURLエンコードとhttp_build_queryを試みたが、何も動作:(

+0

api.phpとは何ですか? jsonレスポンスはどのように作成されますか? –

+0

実際には、mysqlクエリを実行する必要があります。しかし、どういうわけか(上記を参照)私はすべてのパラメータを取得できないので、クエリは私が望むように動作しません。しかし、単純にすべての行をフェッチし、json_encode($ test)を介してそれらを送信します。上記の例では、私はGETSを新しい配列に入れて返すだけです – chack

+1

api.phpに送る前にすべてのパラメータに 'urlencode'を使っていますか? –

答えて

0

ほとんどの場合、あなたはfile_get_contentsに渡す文字列は、特殊文字を持っており、どこか途中で、あなたの文字列を終了することになります。 php manualから

空白のような特殊な文字を有するURIをオープンする場合には、urlencode()でURIをエンコードする必要があり

関連する問題