Autor | Zpráva | ||
---|---|---|---|
Jcas Profil * |
#1 · Zasláno: 22. 4. 2014, 15:15:00
O problémech při špatné volbě jména souboru jsem slyšel už mockrát. Kdybych ty soubory dělal já, tak se takto v nikdy jmenovat nebudou.
Ale co mě zaráží, že to jednou zvládne jednou ne. Vše šlo z jednoho PC, z jednoho softwaru a zpracování je také naprosto stejné. Dělá to jeden a ten samý scandir(). Jediné, kde byl rozdíl (a ten to asi nějak pokazil), že soubory byly na server nahrány na dvakrát a mezitím jsem asi udělal aktualizaci File manageru, kterým to přes FTP nahrávám. Asi mi nezbývá nic jiného, než se vrhnout do dlouhého a dlouhého přejmenovávání. http://www.zocschmoravskebranice.eu/index.php?page=RzP Schválně koukněte např. na rok 1938 a 1944. |
||
Alphard Profil |
#2 · Zasláno: 22. 4. 2014, 15:20:40
Třeba názvy souborů z 1944 se správně zobrazí při kódování cp1250. Zkuste funkci autoUTF() z místoho FAQ.
|
||
Jcas Profil * |
#3 · Zasláno: 22. 4. 2014, 15:38:41 · Upravil/a: Jcas
Sice té funkci moc nerozumím, ale to nevadí. Přetáhnout v příkazu echo přes
autoUTF() , nebo i přes tu fc base64_encode(autoUTF()) ?Tak samotné autoUTF() vyřeší zobrazení. Už ale nevyřeší odkaz, i když se v řádku dole ukazuje dobře. |
||
Alphard Profil |
#4 · Zasláno: 22. 4. 2014, 15:59:09
Použít na přejmenování souborů, zkusil bych rekurzivně vytvořit kopii všech souborů s názvy prohnanými touto funkcí. Nebo ideálně rovnou PHP triky - Vytvoření přátelského URL jestli nevadí zbavit se diakritiky.
|
||
Jcas Profil * |
#5 · Zasláno: 22. 4. 2014, 17:10:30
Tím se to asi nevyřeší? Prostě asi budu muset vše přejmenovat.
Jestliže scandir() vytáhne nějaký název souboru, a tento následně není schopen na onen soubor odkázat, tak ten správný formát odkazu asi nezískám? Víš co jsem zkusil a taky nefunguje. V Filemanageru jsem si dal přejmenovat (abych kopíroval přesně to co ukazuje) ctrl+c a dal jsem to přímo do adresního řádku prohlížeče. A taky nic. |
||
Alphard Profil |
#6 · Zasláno: 22. 4. 2014, 17:47:42
Jcas:
„Prostě asi budu muset vše přejmenovat.“ To navrhuji od začátku, jen bych to zkusil automatizovaně, viz výše. „Jestliže scandir() vytáhne nějaký název souboru, a tento následně není schopen na onen soubor odkázat, tak ten správný formát odkazu asi nezískám?“ Tady je v cestě ještě prohlížeč a http server, který si to může interpretovat po svém. Pokud ani vytažený název souboru nejde použít pro rename() a ohlásí to neexistenci souboru, bude zřejmě (bez nějaký složitých transformací kódování) potřeba jít výše – na úroveň operačního systému. I to se stává. Měl jsem na mysli zkusit něco jako tohle. Zkusit to je otázka 5 minut, jen už to tady řešíte 3 hodiny :-) foreach (scandir() as $file) { // ošetření .. apod. rename($file, friendly_url($file)); // muselo by se ošetřit zachování teček před extenzí } |
||
Časová prodleva: 11 let
|
0