Просто начинаю заниматься PHP веб-разработкой. У меня есть HTML-форма, где пользователь проверяет некоторые серии динамически генерируемых флажков и отправляет через POST. На стороне PHP я хочу проверить, какие из флажков были нажаты.
У меня есть массив $ full_list, и я делаю что-то вроде
$selected_checkboxes = array_filter($full_list, function($item) {
array_key_exists($item, $_POST);
}
У меня возникают проблемы при названии элемента списка, например «Арахисовое масло», поскольку в массиве POST он называется «Peanut_Butter».
Конечно, я мог бы просто str_replace "" с "_" перед проверкой array_key_exists, но я представляю, что здесь есть более фундаментальная проблема кодирования; в частности, я не уверен, какой именно слой преобразует обычные строки в формах HTML (value = "Peanut Butter") в "Peanut_Butter".
Итак:
- какой слой отвечает за это преобразование? Это браузер?
- Каковы точные правила преобразования, и есть ли функция PHP, которая будет копировать это точное преобразование?