Я сериализирую данные формы, входные имена содержат квадратные скобки, т.е.
когда я сериализую его с помощью jquery, чтобы отправить его в мой php-файл для обработки, это выглядит так — test% 5Btesting% 5D = некоторый ввод. Мой php-файл на сервере не видит этих имен, когда я пытаюсь получить его:
echo $ _POST [‘test [testing]’];
если я пытаюсь просто получить информацию, используя проверку имени, она отображается в виде массива. Как мне сказать php, что скобки являются частью имени поля?
<input name="test[testing]">
echo $_POST['test[testing]'];
Мой php-файл на сервере не видит эти имена, когда я пытаюсь получить его
Особые случаи PHP в квадратных скобках в данных POST и GET.
Доступ к нему с помощью:
$_POST['test']['testing']
Это позволяет вам создать форму с данными, которые PHP будет десериализовать в структуру вложенного массива / ассоциативного массива, которую ваш серверный код может перебирать.
Некоторые другие библиотеки обработки форм приняли этот формат, например, Тело-парсер Express.js библиотека имеет необязательный расширенный режим, который поддерживает это.
PHP не имеет встроенной поддержки для построения плоской структуры данных (где $_POST['test[testing]']
будет работать), но вы можете прочитать необработанные данные с помощью:
$post_body_string = file_get_contents("php://input");
… А затем напишите свой собственный анализатор данных в виде URL-адреса.
Других решений пока нет …