Hello,
Nö, htmlentities() behandelt zwar auch die HTML-eigenen Zeichen, es dient aber vor allem zur NCR-Erzeugung, gehört also eher zum Thema Zeichenkodierung. Für die HTML-Kontext-Behandlung ist htmlspecialchars() ausreichend.
Und im Falle des OP wäre noch raw_url_encode() notwendig, wenn er es denn selber machen will...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg