Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zmiana znaków w ciągu
-phisis-
post
Post #1





Goście







Witam,
Mam skrypt, który potrzebny mi jest do zmiany polskich znaków (ę, ć, ż, ź, itp) na ich odpowiedniki bez ogonków. Oto kod:

//podmiana polskich znakow w tytule
$polskie_znaki = array('ó', 'ż', 'ź', 'ł', 'ć', 'ń', 'ś', ' ', 'ę'); //Lista polskich znakow
$podmienione_znaki = array('o', 'z', 'z', 'l', 'c', 'n', 's', '_', 'e'); // Lista podmienionych znakow
$wynik = str_replace($polskie_znaki, $podmienione_znaki, $tytul);
echo strtolower($wynik);

Wszystko ładnie działa za wyjątkiem ostatniego znaku. PHP zamienia mi tytuły poprawnie (tj. zmienia znaki na małe i bez ogonków), za wyjątkiem ostatniej ("ę").
Czy ktoś z Was wie dlaczego tak jest?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PiXel2.0
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ja sprawdzalem na UTF-8 (oczywiscie przy uzyciu mb_strtolower()) i dziala prawidlowy.

Twoj kod dziala tak:
Jesli w oryginalnym tytule sa male polske znaki to obcina im ogonki.
Jesli w oryginalnym tytule sa duze polskie znaki to zastaja zamienione na male (nie obcina im ogonkow).

Moze nie o to Ci chodzilo i pomyliles kolejnosc z jaka nalezy zastosowac funkcje ?

Gdybys zastosowal funkcje strtolower() na tytule przed usunieciem ogonkow to mialbys same male znaki bez ogonkow a tak to jesli w tytule masz duze 'Ę' lub 'Ą' to ogonki nie zostana usuniete wiec po zamianie na male znaki otrzymasz 'ę' i 'ą' z ogonkami.

Ten post edytował PiXel2.0 17.05.2008, 03:08:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 10:16