PHP işlevi htmlspecialchars'dan () için bir Python eşdeğer var mı?

6 Cevap php

PHP işlevi htmlspecialchars'dan () için Python benzer veya eşdeğer bir işlevi var mı? Ben buldum yakın şey şimdiye kadar) (htmlentitydefs.entitydefs olduğunu.

6 Cevap

Bilmem yakın şeydir cgi.escape.

Muhtemelen istiyorum xml.sax.saxutils.escape:

from xml.sax.saxutils import escape
escape(unsafe, {'"':'"'}) # ENT_COMPAT
escape(unsafe, {'"':'"', '\'':'''}) # ENT_QUOTES
escape(unsafe) # ENT_NOQUOTES

xml.sax.saxutils.quoteattr bir göz var, o sizin için daha faydalı olabilir

(Python 2.x için htmlentitydefs) html.entities modülü sözlüğü codepoint2name ne gerek yapmalıyım içerir.

>>> import html.entities
>>> html.entities.codepoint2name[ord("&")]
'amp'
>>> html.entities.codepoint2name[ord('"')]
'quot'

Ben basit yolu sadece yerine kullanmak olduğunu düşünüyorum:

text.replace("&", "&amp;").replace('"', "&quot;").replace("<", "&lt;").replace(">", "&gt;")

PHP sadece htmlspecialchars'dan ile bu dört varlıkları kaçar. PHP ayarlanmış ENT_QUOTES varsa, tırnak ile değiştirmeniz gerektiğini unutmayın ' yerine " daha.

Django 1.0 kullanıyorsanız, o zaman şablon değişkenleri zaten kodlanmış ve gösterim için hazır olacaktır. Eğer istemiyorsanız da safe operatörü {{ var|safe }} kullanmak bu küresel döndü.