Autor Zpráva
VelikonocniZajicek
Profil *
Dobrý den, přenáším v url názvy článků a místo mezer mám v url %20, i některé jiné znaky jsou zakodovány, takže když to potom chci někde vypsat, vypisuje se mi to i s těmi procenty. není v php nějaká funkce která by to sama nějak převáděla?
Děkuji
ShiraNai7
Profil
urldecode()
VelikonocniZajicek
Profil *
Díky a když nechci abych měl ty procenta v url? některé weby když přenáší nějaký text v url mají místo mezer pomlčky, to dělá nějaká funkce, nebo mám použít replace?
Alphard
Profil
Viz php.vrana.cz/vytvoreni-pratelskeho-url.php ale nahrazení za pomlčky je destruktivní, původní název z toho už nezískáte.
VelikonocniZajicek
Profil *
Ne? jakto? když udělá replace mezer za pomlčky a potom nahradím pomlčky za mezery...
Fisak
Profil
Alphard:
tento script vynechává písmena s háčky a čárky proto bych tam ještě přidal něco jako:
 $url = Str_Replace(
    Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý","ž",  "Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž","ä", "ë","ü","ö","Ä","Ë","Ü","Ö","ő","ô","ŕ","ű","ĺ", "Ĺ","Ő","Ô","Ŕ","Ű"),
    Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z",  "a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z","a", "e","u","o","a","e","u","o","o","o","r","u","l", "l","o","o","r","u"), $url);
Alphard
Profil
Fisak [#6]:
Nevynechává, tu vaši šílenost nikde neraďte. Vránův přístup je lepší.

VelikonocniZajicek:
Ok, když nahradíte mezery za pomlčky, jde to obrátit. Funkce, kterou jsem odkázal, odstraní veškerou diakritiku a nevhodné znaky, to zpět vzít nejde.
VelikonocniZajicek
Profil *
No já to zkoušel bez toho Fisakova kodu a vynechalo to písmena s háčky a čárky...
Fisak
Profil
Alphard:
Mě to teda vynechává písmena s diakritikou :-) proto jsem tam přidal toto..
Alphard
Profil
Aby nedošlo ke zmatení, do url se řetězce normálně escapují, pak tam jsou znaky jako %20, není to žádná chyba. Zpětněn není problém získat původní řetězec.
Někdy je žádoucí osekat z url problematické znaky, nechat prakticky jen ty alfanumerické z ASCII tabulky, to dělá funkce v Alphard [#4]. Původní řetězec získat nelze.
Nahradit mezery za pomlčku a zpět můžete jednoduchým replace (pouze tím ztratíte pomlčky, pokud si neuděláte vlastní escapování).
V url lze mít i diakritiku, viz wikipedia, ale může to vést k problémům.

Nevím, co vlastně chcete, všechny možnosti byli zmíněny. Dělejte, co potřebujete.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: