Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana wielkości liter polskich - pierwszych w ciągu
Forum PHP.pl > Forum > PHP
dbaj
Witam
Głowię się nad pewnym problemem.
Potrzebuję zwalidować jedno pole z formularza. Użytkownicy nagminnie wpisują nazwę miejscowości DUŻYMI LITERAMI.
Chcę aby skrypt zamieniał wielkości liter (również polskie) tak aby np. miasto WROCŁAW było Wrocław, ZDUŃSKA WOLA było Zduńska Wola i to działa, ale mój skrypt nie działa dla nazw zaczynających się od polskich znaków. Miasto ŻARY jest żary. Jak można to wykonać, aby zamieniał pierwszą literę ciągu na dużą, jezeli jest to nasz polski ogonek?

oto mój skrypt:

Kod
$ogonki_male = array('ę','ó','±','¶','ł','ż','Ľ','ć','ń');
$ogonki_duze = array('Ę','Ó','ˇ','¦','Ł','Ż','¬','Ć','Ń');

$miasto_instytucji = ucwords(strtolower(str_replace($ogonki_duze, $ogonki_male, $_POST['tMiastoInstytucji'])));

nie zwracajcie uwagi na mój nieudolny tablicowy sposób, wiem że ładniej jest zastosować wyrażenia regularne smile.gif
beton
hm moze uzyc tak setlocale(LC_ALL,"pl_PL.iso8859") lub inne kodowanie ktorego uzywasz, poniewaz takie funkcje jak strtolower itp opieraja sie o LC_ALL, pytanie tylko czy na Twoim serwrze są zainstalowane owe locale;]
nevt
jeżeli na twoim serwerze PHP jest odpowiednia biblioteka (mbstring), to problem rozwiąże funkcja mb_convert_case()
dbaj
Wielkie dzięki!
Biblioteka jest i sposób z mb_convert_case() o niebo szybszy i sprytniejszy smile.gif

Kod
$miasto_instytucji = mb_convert_case($_POST['tMiastoInstytucji'], MB_CASE_TITLE, "ISO-8859-2");
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.