Функция PHP htmlspecialchars() предназначена для осуществления следующих действий в формах:
$note = htmlspe.cialchars("<a href=http://unwantedsite.com>Click Here for $$$</a>")
Эта функция преобразует все теги HTML в сущности HTML, например < превращается в <, и данная переменная будет отображена так:
<а href=http://unwantedsite.com/">http://unwantedsite.com > Click Here for $$$ </a>
Таким образом, любой введенный код HTML будет преобразован и отображен буквально.
Функция escapeshellcmd()
string escapeshellcmd(string command)
Эта функция полезна, когда полученные от пользователя данные передаются таким функциям, как ехес() или system(). Она обходит любые символы в строке, которые могут заставить командный процессор выполнить произвольные команды, нарушающие безопасность системы или даже удалить все файлы в каталоге.
Перечисленные выше ситуации относятся к чрезвычайным и встречаются редко, а в обычных случаях нужны значительно более простые проверки. Приходится проверять корректность адреса электронной почты или наличие в имени только символов алфавита, а не цифр. Неплохо было бы в приведенном примере иметь возможность просто вырезать HTML-теги <а href= http ... >. Такую возможность предоставляют регулярные выражения (regular expressions).
Регулярные выражения
Регулярные выражения (regex) ведут свое происхождение от ранних исследований нервной системы человека. Уоррен Мак-Каллох (Warren McCulloch) и Уолтер Питтс (Walter Pitts), два нейрофизиолога, разработали способ математического описания таких нервных сетей. В 1956 году американский математик Стивен Клини (Stephen Kleene), основываясь на более ранней работе Мак-Каллоха и Питтса, опубликовал работу «Representation of Events in Nerve Nets» (Представление событий в нейронных сетях), в которой было введено понятие регулярных выражений. Регулярные выражения служили способом описания того, что он назвал «алгеброй регулярных множеств».
Эти теории не сильно повлияли на нейрологию, но данная работа оказала воздействие на некоторые ранние разработки вычислительных алгоритмов поиска, которые проводил Кен Томпсон (Ken Thompson), главный создатель UNIX. Первым практическим применением регулярных выражений стал редактор UNIX под названием qed.
С тех пор регулярные выражения стали важной составной частью текстовых редакторов, инструментов поиска и большинства основных языков программирования. Регулярные выражения, по существу, представляют собой язык описаний для поиска (строк) по шаблону. С помощью регулярных выражений можно: