Autor | Zpráva | ||
---|---|---|---|
farradox Profil |
#1 · Zasláno: 30. 1. 2010, 15:54:55
Zdravím,
mám menší problém. Stáhnul jsem seznam ulic z http://aplikace.mvcr.cz/adresa/xml.html a veškeré názvy jsou tam ve formátu "PRAHA" a né "Praha". Nemáte někdo nápad jak ty názvy měst a ulic získat "normální" formě? Díky za rady |
||
pEeLL Profil |
#2 · Zasláno: 30. 1. 2010, 16:32:08
php
ucfirst(strtolower("PRAHA") a pres foreach projit cele pole. |
||
farradox Profil |
#3 · Zasláno: 30. 1. 2010, 17:11:12
Tohle vyhodí "Hradec králové" a králové je s malým "k", takže je tam gramatická chyba. Přes ucfirst() jste mě přivedl k ucwords(), který už vypíše "Hradec Králové". No, ale co když přijde "Hradec nad Moravicí" :-) Jde mi o tenhle problém a ještě horší je to vlastně u ulic. Vím, že to nevyřeším přes php kód, ale šlo mi spíše o nějaký jiný zdroj nebo propojení s nějakou další databází...
|
||
Keeehi Profil |
#4 · Zasláno: 30. 1. 2010, 18:03:14 · Upravil/a: Keeehi
farradox:
Použít ucwords() a následně ještě najít předložky a nahradit je Nad => nad, třeba funkcí str_replace(). |
||
farradox Profil |
#5 · Zasláno: 30. 1. 2010, 18:31:53
Ty předložky mě napadly jako jediné řešení a stejně by jsem neošetřil úplně všechno. Navíc mám problém s funkcí ucwords(), která nepřevede malé znaky s háčky na velké. Nevíte, jak to vyřešit? Na internetu jsem nic nenašel a používám kódování UTF-8.
|
||
Keeehi Profil |
#6 · Zasláno: 30. 1. 2010, 18:35:50 · Upravil/a: Keeehi
farradox:
Toto by mělo fungovat s utf (ucwords). Namísto ucwords() budeš používat mb_ucwords. Toto, co následuje, si tam musíš nakopírovat taky. <?php if(!function_exists('mb_ucwords')) { function mb_ucwords($str) { return mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); } } ?> Zde jsou funkce, které je dobré používat, pokud používáš vícebitová kódování. |
||
farradox Profil |
#7 · Zasláno: 30. 1. 2010, 20:36:07
Paráda :) Díky moc.
Sice u ulic budu muset vypisovat každé slovo s velkým písmenem, protože mě nenapadlo žádné rozumné ošetření. Přesto to vypadá o 100% lépe. Díky |
||
Časová prodleva: 14 let
|
0