2016-05-02 3 views
1

В настоящее время я разработал свой собственный API, чтобы использовать два сервера. Один сервер запрашивает параметры file_get_contents и GET, чтобы другой мог ответить с помощью JSON. Все работает отлично, пока один запрос с множеством параметров.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 [место] => Саарлуис, Германия [сарт] => 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", "Saarlouis", "4", null, "", "", "", "", "", "", "", "

Вы видите: Почему у меня есть вопрос о том, почему мой location cut off, warmmiete = null и почему haustyp null?

На JSON стороны я использую
$XX = htmlspecialchars($_GET['XX']);

При использовании GET параметра с моим браузером я получаю правильный массив обратно. Так что что-то сломалось с моим file_get_contents ... Я пытался что URL-кодирование и http_build_query, но ничего не работает :(

+0

Что делает api.php? Как это создает ответ json? –

+0

На самом деле он должен делать запрос mysql. Но почему-то (см. Выше) я не могу получить все параметры, поэтому запрос не работает, как я хочу. Но он просто извлекает все строки и отправляет их через json_encode ($ test). В приведенном выше примере я просто помещаю GETS в новый массив и отправляю его обратно – chack

+1

Используете ли вы 'urlencode' для всех параметров перед отправкой на api.php? –

ответ

0

Скорее всего, строка, вы передаете file_get_contents имеет особый характер и будет закончить строку где-то в середине.

от php manual:.

Если вы открываете URI с помощью специальных символов, таких как пробелы, вы должны кодировать URI с urlencode()

Смежные вопросы