Portál AbcLinuxu, 12. května 2025 09:27

Dotaz: PHP - Encode/Decode url

21.5.2014 13:53 E3
PHP - Encode/Decode url
Přečteno: 236×
Odpovědět | Admin
Ahoj, existuje nějaká funkce v php, která dokáže převod url adresy? Mám adresu
/foo/bar/par1/par2/
a chci řetězec který půjde vrátit zase do tvaru url. Podmínka je, že takto "zakódovaný řetězec nebude obsahovat žádné speciální znaky jako jsou %,=,/,\,.,- atd... ". Idelálně řetšzec jako vrací HASH, MD5 a jiné, ovšem s možností vrácení do původního stavu. Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 22.5.2014 13:15 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Encode/Decode url
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš použít funkci urlencode. URL bude správně, ale bude obsahovat '%', '.' a '+' (což v URL ničemu nevadí):
$ php -r 'echo urlencode("jako jsou %,=,/,\,.,- atd..."), "\n";'
jako+jsou+%25%2C%3D%2C%2F%2C%5C%2C.%2C-+atd...
Výhodou je, že ascii data jsou pěkně čitelná.

Pokud ti na čitelnosti dat nezáleží, ale opravdu tam nechceš nic než alfanumerické znaky, nabízí se např. base64+trim:
$ php -r 'echo trim(base64_encode("jako jsou %,=,/,\,.,- atd..."), "="), "\n";'
amFrbyBqc291ICUsPSwvLFwsLiwtIGF0ZC4uLg
$ php -r 'echo base64_decode(trim(base64_encode("jako jsou %,=,/,\,.,- atd..."), "=")), "\n";'
jako jsou %,=,/,\,.,- atd...
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.