PHP

Как очистить переменную от лишних символов

Нередко перед web-разработчиком встает задача защиты сайта от вредоносного кода. Один из способов защиты – это очистить переменные перед тем, как их куда-то передавать дальше. Например переменные, значения которых скрипт получает из полей формы, расположенной на сайте. В частности нужно убрать кавычки (двойные и одинарные, очистить пробелы вначале и в конце, очистить переменную о символов, типа ^, $, 8 и т.д.)
Давайте разберем несколько отдельных примеров того, как можно очистить переменную от разного мусора.

Убираем пробелы

Для того, чтобы очистить переменную от пробела вначале и вконце, есть стандартная PHP-функция trim();
На практике это выглядит так:

$var = trim($var);

Мы взяли переменную $var, обработали функцией trim() и результат поместили снова в переменную $var. Теперь в $var содержимое будет без пробелов вначале и вконце.

Удаляем кавычки

Для этого можно использовать функцию str_replace(), которая заменяет указанный символ в строке на другой, указанный символ. Выглядит это так:

$string = str_replace('"', "", $string);
$string = str_replace("'", "", $string);

Убираем лишние символы – 1 способ

В данном случае можно опять-же использовать функцию str_replace(). Например, убираем символ ^ из переменной.

$string = str_replace("^", "", $string);

Мы просто заменили символ ^ на ничто. То есть вырезали его из переменной.
Также поступаем с символом *:

$string = str_replace("*", "", $string);

Убираем лишние символы – 2 способ

Если нам надо удалить из строки большое количество символов, то можно оптимизировать наш код. Это необходимо для того, чтобы не писать много лишнего кода.
Создаем массив, в которой помещаем наши символы (от которых хотим избавиться) и сопоставляем их с пустотой (на которую эти символы будут заменены)

$arr = array("^"=>"", "*"=>""); // создали массив, в котором присвоили пустоту для ключей-символов
Далее обрабатываем переменную, которую нужно очистить от ненужных символов таким образом
$return = strtr($var,$arr); // обработали переменную var, заменив символы пустотой

Мы создали $return в которую поместили очищенную о лишних символов переменную var.

Полезная функция для обработки переменной

Можно объединить несколько приемов обработки переменных в одну функцию. Например – как одной функцией вырезать кавычки, символы ^ и *, а еще убрать пробелы вначале и в конце переменной? Можно использовать такой прием:

function PROTECT($var){ 
	$arr = array("^"=>"", "*"=>""); // создали массив, в котором присвоили пустоту для ключей-символов
	
	$return = strtr($var,$arr); // обработали переменную var, замеив символы пустотой
	
	$return = str_replace('"', "", $return); // убрали двойные кавычки
	$return = str_replace("'", "", $return); // убрали одинарные кавычки
	$return = trim($return); // убрали пробелы вначале и вконце
	return $return; // возвращаем результат работы функции
}

Теперь, чтобы очистить переменную от символов и пробелов, достаточно обработать ее одной функцией:

$var_new = PROTECT($var);

В итоге имеем переменную $var_new, в которой находятся очищенные данные переменной var.

Back to list

Добавить комментарий

Ваш адрес email не будет опубликован.