Функция filter_var php

119
02 ноября 2019, 02:50

В php есть функция под названием filter_var. Так вот, там есть очищающие фильтры.

Вопрос следующий:

Фильтр FILTER_SANITIZE_MAGIC_QUOTES, судя по его описанию просто применяет функцию addslashes() к переменной. И все... Так вот, что лучше использовать? addslashes() или filter_var с фильтром FILTER_SANITIZE_MAGIC_QUOTES. И что бы вы использовали?

Answer 1

Разумеется, ни в коем случае не применять ни то ни другое.

Ни малейшего смысла применять данный фильтр нет. При этом вред от него огромный.

Поэтому просто забываем про волшебные кавычки и addslashes() как про страшный сон, как это уже много лет как сделала цивилизованная часть РНР сообщества

Answer 2

В filter_var можно можно передавать фильтры вычисляемые в рантайме, по необходимости. Тогда как addslashes делает ровно то, что делает и ничего более.

Например такой вариант (с потолка):

class PrepareData {
    function filter($data, array $filters){
        foreach($filters as $filter){
            $data = filter_var($data, $filter);
        }
        return $data;
    }
}

В целом, filter_var стоит использовать там, где хочется получить единообразия в обработке схожих ситуаций. Допустим у вас switch на десяток case'ов на все случаи жизни и во всех filter_var, а в одном addslashes - не аккуратьненько. Если же вам на весь проект нужен только один этот фильтр, то родная функция addslashes будет более уместна и чуть-чуть более быстра.

READ ALSO
Переписать цикл the_loop в wordpress

Переписать цикл the_loop в wordpress

Есть код вывода контента в singlephp

127
Как определить аутентифицированного пользователя в конструкторе контроллера Laravel?

Как определить аутентифицированного пользователя в конструкторе контроллера Laravel?

Нашел в документации, что начиная с версии 53 нельзя использовать фасад Auth для получения аутентифицированного пользователя в конструкторе...

115