В php есть функция под названием filter_var. Так вот, там есть очищающие фильтры.
Вопрос следующий:
Фильтр FILTER_SANITIZE_MAGIC_QUOTES, судя по его описанию просто применяет функцию addslashes() к переменной. И все... Так вот, что лучше использовать? addslashes() или filter_var с фильтром FILTER_SANITIZE_MAGIC_QUOTES. И что бы вы использовали?
Разумеется, ни в коем случае не применять ни то ни другое.
Ни малейшего смысла применять данный фильтр нет. При этом вред от него огромный.
Поэтому просто забываем про волшебные кавычки и addslashes() как про страшный сон, как это уже много лет как сделала цивилизованная часть РНР сообщества
В 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 будет более уместна и чуть-чуть более быстра.
Продвижение своими сайтами как стратегия роста и независимости