

PHP - Ako zakódovať odkazy?
Na stránke sa vytvárajú aj odkazy, ktoré obsahujú znak medzera, prípadne iné znaky, ktoré si môže prehliadač pomýliť. Ako zapísať v PHP, aby sa odkaz správne previedol? Na prevedenie medzery používam str_replace, medzera sa aj prevedie, ale po kliknutí na odkaz sa mi vo FF v riadku pre adresu tá medzera objaví, hoci v zdrojáku bolo správne napísané %20. Pri IE sa objaví v riadku pre adresu správne %20 Je nejaký príkaz na úpravu odkazov alebo to treba upravovať ručne? Ako to prípadne dekódovať?
Jedná sa mi hlavne o znaky medzera a &, = (rovná sa) nie je dôležité.
Úprava: Ako som práve zistil, medzeru vo FF asi nechozchodím, má niekto lepšie skúsenosti s medzerou vo FF? Znak & som upravil cez str_replace.
Úprava 2: Ako som práve zistiť, neviem sfunkčniť znaky < a > ak s[ obsiahnut0 v odkaze. Je nutn0 aj tie previes5 cez str_replace? htmlspecialchars mi nepomohlo a uvítal by som radšej na to nejakú funkciu.
Reťazce v URL sa kódujú pomocou funkcie urlencode, ktorá zakóduje medzeru ako znak +.
URL v HTML sa kóduje rovnako ako ostatný text pomocou funkcie htmlspecialchars.
Aj som si to myslel, hľadal som funkciu s podobným názvom, ale nenašiel som nič. Chyba bola v tom, že som hľadal v sekcii string functions.
Prekvapuje ma, že si to nevie poradiť, ak uzavriem znaky < a >, čiže niečo takéto: <a>.
Úprava: Beriem späť. Pri zobrazovaní som nepoužil htmlspecialchars() a teda tie značky nezobrazilo.
Výsledkom urlencode("<a>") je %3Ca%3E - htmlspecialchars s tým už nič nespraví, keďže tam nie sú žiadne špeciálne HTML znaky.
Išlo o to, že sa to zobrazuje aj v obsahu stránky.