URL / HTML Escaping / Codificación

Siempre me han confundido con URL / HTML Encoding / Escaping. Estoy usando PHP, así que quiero aclarar algunas cosas.

¿Puedo decir que siempre debería usar

urlencode: para partes de cadena de consulta individuales

$url = 'http://test.com?param1=' . urlencode('some data') . '&param2=' . urlencode('something else');

htmlentities: para escapar de caracteres especiales como<> para que el navegador lo represente correctamente

¿Habría otros lugares donde podría usar cada función? No soy bueno en todas estas cosas de escape, siempre confundido por ellas

Respuestas a la pregunta(2)

Su respuesta a la pregunta