urlencode serve quando devi far passare una stringa in get.
htmlentities trasforma i tag html in entità html appunto. Si usa quando si devono salvare campi di testo e per ragioni di sicurezza si voule evitare che venga inserito codice html. Ad esempio, in questo forum, se provi a scrivere qualcosa in html, non verrà interpretato, ma ti verrà restituito così come lo hai scritto.