2010-04-21 4 views
1

У меня есть следующий код.Как передать многомерный массив как параметр GET в PHP?

$connect = new Connection(); 
$response = $connect->putFile($fileName, $destination); 
header("Location: /test.php?response=" . $response); 

Когда я взываю заголовок с ответом, файл будет остановить выполнение, но не будет иметь ошибки в консоли ... Я имею в виду, может быть, этот массив должен быть закодирован для URL?

если это случай как?

Спасибо

ответ

2

Если $response это многомерный массив, вы можете тариф лучше всего serialize() ИНГ его и UrlEncode() ИНГ результат. Это добавляет некоторые накладные расходы, но не слишком много.

Однако передача данных через GET серьезно ограничена. Объем данных не должен превышать 1-2 килобайта. Источник: Например here

Если ваши данные, вероятно, превысят этот предел, вы должны подумать о том, чтобы переносить данные через POST или, если это невозможно, в сеансе или в другом виде постоянного хранилища.

2

Использование http_build_query()

http://us.php.net/http-build-query

+0

Я думал об использовании http_build_query, но проблема в том, что это приведет только к тому, что каждое значение массива станет параметром get. Для одномерного массива это может работать хорошо, но не для многомерного массива, особенно если ответ различен каждый раз или если он содержит несколько массивов, подобных этому [0] => Объект SimpleXMLElement () [1] = > SimpleXMLElement Объект () [2] => SimpleXMLElement Object () [3] => SimpleXMLElement Object () ... – Onema

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