Я слышал, что это хак, чтобы передать массив в параметрах запроса, таких как
http:site.com?a[]=5&a[]=6
Я знаю массив поддержки PHP в параметрах запроса, поэтому на стороне сервера вы можете получить что-то вроде
$_GET[a] = [5,6]
Поддерживает ли это другие языки программирования, как PHP? Это взломать, чтобы передать массив таким образом? Если да, то что лучше всего передавать массив в параметрах GET?
ИМО: его особенность, а не взломать все еще хотят получить мнение сообщества
Это не хак, это потрясающая функция!
Я думаю, что люди говорят это, потому что это уродливо, если ваши пользователи видят это в URL.
То, что вы можете сделать, это объединить ваши данные, а затем взорвать их на стороне сервера.
http:site.com?a=5_6
explode('_', $a);
Это взломать, чтобы отправить массив в параметрах запроса в get?
Это нестандартное дополнение к application / x-www-form-urlencoded (которое изначально не было четко определено), так что да, это хак.
Является ли это умным взломом или уродливым взломом, в значительной степени вопрос мнения. Есть плюсы и минусы.
Поддерживает ли это другие языки программирования, как PHP?
В большинстве языков нет обработки HTTP, встроенной на таком фундаментальном уровне. PHP начал свою жизнь как библиотека для выполнения вещей в стиле CGI, и это видно. Вы действительно должны смотреть на библиотеки для обработки данных формы, а не на языки здесь.
Большинство из них позволит вам расширить дубликаты ключей в строках запроса, не требуя, чтобы имя включало []
(который многословен и труден для чтения), чтобы он работал. Ограничением является то, что вы не можете явно указать индекс массива в данных.
Хотя есть реализации стиля PHP. тело-анализатор позволяет использовать этот синтаксис при указании extended: true
, в Perl PHP::ParseStr
реализует его, хотя и не интегрирует его с кодом для извлечения строки из запроса.
Если да, то что лучше всего передавать массив в параметрах GET?
Если вы используете PHP, используйте для этого синтаксис PHP.