Основная цель функции заключается в чистой ассоциативный массив или одной переменной. Ассоциативный массив - это массив, в котором вы определяете ключи и значения для этих ключей; поэтому специальные массивы, используемые в PHP, такие как $_GET
$_POST
и так далее.
Смысл «очистки» заключается в том, чтобы проверить, являются ли магические кавычки активными - это приводит к тому, что некоторые символы в этих массивах экранируются обратными косами при отправке динамических данных на страницу PHP. $_GET["Scarlett"] = "O' Hara"
становится волшебными кавычками $_GET["Scarlett"] = "O\' Hara"
Так что, если волшебные кавычки активны, функция заботится об этом, и слешите раздело так, что строки сохраняют свое правильное, не прибежит значение.
Алгоритм проверяет, являются ли данные, переданные функции, массивом, если он не очищает непосредственно значение.
$string = "Escapes\'in\'a string";
clean($string);
это массив? Нет. Затем возвращаем stripslashes (мои данные)
$ array = array ("key \ 'with \' escapes" => "value \ 'with \' escapes", "another \ 'key" => "другое значение «); clean ($ array)
это массив? Да. Итак, проведите через каждую пару ключ/значение с foreach
, возьмите ключ и очистите его, как первый пример; затем возьмите значение и сделайте то же самое и поместите очищенные версии в массив.
Как вы видите, функция имеет два разных поведения, дифференцированных этим утверждением «если». Если вы передаете массив, вы активируете второе поведение, которое по очереди проходит пары из строк, а не массивов, вызывая первое поведение.
Я думал, что эта функция работает неправильно. У кого-то такое же ощущение? Я его еще не тестировал, но, похоже, это не «чистка» ключа/значений в смысле их замены, но добавляет очищенные версии по неочищенным.
Вы должны заменить свой вызов 'ini_get'' get_magic_quotes_gpc() '. И я уверен, что ключи не экранированы - так что вы можете протестировать это и удалить «clean ($ key)», если они фактически не экранированы. – ThiefMaster
Я не понимаю вопроса ... Что вы хотите знать? – DonCallisto