Адвокаты МКА ЮСТИЦИЯ: адвокат москва.

Очистка строки

public function parseString( $str ) {
        $str = trim( $str );
        $str = preg_replace("/[^\x20-\xFF]/","",@strval($str));
        $str = strip_tags( $str );
        $str = htmlspecialchars( $str, ENT_QUOTES );
        $str = mysql_real_escape_string( $str );
        return $str;
}

Функция предназначена для очистки/проверки входных данных от пользователя. Вырезает все кроме текста, а также готовит строку для сохранения в базе данных.

Первый trim() удаляет пробельные символы вначале и в конце строки, затем preg_replace() удаляет непечатаемые, опасные символы. strip_tags() удаляет все html тэги, затем с помощью htmlspecialchars() все специальные символы типа кавычек и т.п. перекодируются в вид html сущностей типа "«" и др. Последним действием выполняется экранирование строки для sql запроса специальной функцией mysql_real_escape_string().

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