Nefunguje URL na soubor s diakritikou – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nefunguje URL na soubor s diakritikou – PHP – Fórum – Programujte.comNefunguje URL na soubor s diakritikou – PHP – Fórum – Programujte.com

 

ingiraxo+15
Grafoman
21. 4. 2015   #1
-
0
-

Ahoj, nevíte jak zprovoznit odkaz na soubor, který obsahuje diakritiku?

Mám tento testovací soubor s názvem "ěščřžýáíé-ďťňóúů-#&%$+-ß.jpg".

Jde o to, že přes opendir(..) získám všechny soubory z adresáře a potom přes readdir(..) je vypisuju s tím, že se generuje <a href> a pro soubory s diakritikou to nefunguje. Ale přitom filesize(..) funguje...

Viděl jsem běžně i odkazy, kde byly třeba čínské znaky a fungovalo to, tak nechapu proč to nejede. Zkoušel jsem všechno možný co nabízí php a stále nic... teoreticky by to mělo jít přes "rawurldecode(..)", ale to mi taky nefunguje.

Díky za rady

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
peter
~ Anonymní uživatel
3981 příspěvků
22. 4. 2015   #2
-
0
-

urlencode - vystup pro url
htmlspecialchars - vystup pro html

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:8c5a:16...–
ingiraxo+15
Grafoman
22. 4. 2015   #3
-
0
-

už jsem to vyřešil, je potřeba před "urlencode" překonvertovat název souboru do utf8 + přidat hlavičku pro kódování utf8..

Takže:

header('Content-Type: text/html; charset=utf-8');

$url = urlencode(iconv(mb_detect_encoding($file, mb_detect_order(), true), 'UTF-8', $file));

jen pozor na to, že tohle je pouze pro zobrazení a načtení z URL!

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
peter
~ Anonymní uživatel
3981 příspěvků
23. 4. 2015   #4
-
0
-

$url = urlencode('podivny text');
header('Location': $url);

ALE!

'<a rel="nofollow" href="' . htmlspecialchars($url) .'">aaa</a>'

A to jeste mozna bude treba upresnit enquote nebo tak neco, aby konvertoval take uvozovky na &quote;. To kodovani je spis neco navic, zavisi na zdroji te url. Kdyz to tahas treba z db, ktera ma latin1 a neprekontvertujes si to pres SET NAMES nebo to ta db neumi, tak to potom musis konvertovat pres mb_ nebo iconv(), hold :)

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:d086:56...–
peter
~ Anonymní uživatel
3981 příspěvků
23. 4. 2015   #5
-
0
-

Mimochodem, mb_ ma vlastni konverzi. Je divne kombinovat mb_ a iconv :)

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:d086:56...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý