¿Cuándo usar esc_html y cuándo usar sanitize_text_field?

11

Parece que hacen casi el mismo tipo de trabajo. Entonces...

¿Cuándo debo usar en esc_html()lugar de sanitize_text_field()?

si hombre
fuente

Respuestas:

19

esc_html() es más o menos sin pérdidas: simplemente convierte el marcado HTML en texto visible codificado, para que el navegador no lo represente como marcado.

Semánticamente es un escape , por lo que está destinado a usarse para que la salida a la página sea segura.

sanitize_text_field()sin embargo, en realidad elimina todo el marcado HTML, así como espacios en blanco adicionales. No deja nada más que texto sin formato.

Semánticamente es desinfectante , por lo que está destinado a usarse para hacer que las entradas se guarden de forma segura.

Rarst
fuente
¿No es mejor usar esc_html tanto para la salida como para guardar? No mostraré ningún marcado de todos modos ... entonces, ¿cuándo usaría sanitize_text_field ()?
sí,
1
@yeahman "mejor" ¿cómo? Están haciendo cosas claramente diferentes. Desechar el marcado generalmente se usa para cosas donde no se espera el marcado, por ejemplo, un formulario que toma un nombre.
Rarst
Quiero decir que almacena lo que el usuario ve y tiene entrada ... como dijiste que no tiene pérdidas ... (por ejemplo, ingresa "la etiqueta <head> es donde debes incluir tus archivos css", espera ver la <head> en su puesto). Para un campo de nombre, controlaría la entrada mediante validación; ¿No es más adecuado?
sí,
Estoy interesado en las diferencias entre sanitize_text_field()ystrip_tags
myol
strip_tags se usa en sanitize_text_field () si no me equivoco
hombre