Аналог htmlspecialchars в Python
В python нет функции под названием htmlspecialchars, но есть ее полный аналог escape в стандартной библиотеке cgi
import cgi
print cgi.escape("<a href='test'>Test</a>", True)
В результате получим
# <a href='test'>Test</a>;
Функция htmlspecialchars не делает ничего особенного, если посмотрим документацию php, то увидим:
- ‘&’ (ampersand) becomes ‘&’
- ‘"’ (double quote) becomes ‘"’ when
ENT_NOQUOTES
is not set. - “’” (single quote) becomes ‘'’ (or ') only when
ENT_QUOTES
is set. - ‘<’ (less than) becomes ‘<’
- ‘>’ (greater than) becomes ‘>’
всего 5 возможных замен, поэтому можно ничего не импортировать, а использовать свою функцию
def html_special_chars(text):
return text \
.replace(u"&", u"&") \
.replace(u'"', u""") \
.replace(u"'", u"'") \
.replace(u"<", u"<") \
.replace(u">", u">")
a = "<a href='test'>Test</a>"<br />print html_special_chars(a)