![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 35 Dołączył: 5.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
witam,
Czy ktoś ma może pomysł/wiedzę w jaki sposób dokonać konwersji polskich znaków do ich łacińskich odpowiedników. Znaczy się aby we wskazanym stringu wszystkie wystąpienia 'ą' zamienić na 'a' i tak ze wszystkimi polskimi znakami. Mój obecny pomysł to: Osobiście mi się to nie bardzo podoba i szukam czegoś bardziej automatycznego. Podobną zamianę chciałbym dokonać na literkach francuskich i niemieckich. Wszelkie pomysły mile widziane. Z góry dzięki. Ten post edytował boguszewski 24.07.2008, 13:34:47 -------------------- Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Było już milion razy... poszukaj...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 35 Dołączył: 5.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wtedy nie udało mi się znaleźć tego "milion razy". Jednak jakiś czas potem pojawił się temat gdzie problem został rozwiązany (post: http://forum.php.pl/php_Jak_stworzyc_funkc...ie_t100607.html).
Dzięki pomysłom (przykładom) przedstawionym przez uczestników tamtej dyskusji napisałem następującą funkcję:
Funkcja transformuje przekazany string ($str) do postaci złożonej tylko i wyłącznie z standardowych liter [a-z], cyfr [0-1] oraz znaków _ i -. Wielokrotne połączenie _ lub - będzie zredukowane do jednego znaku (odpowiednio _ lub -). Jeżeli drugi parametr ($strtolower) będzie ustawiony jako true (domyślna wartość) funkcja zmieni wielkość wszystkich liter na małe. W przeciwnym wypadku wielkość liter nie ulegnie zmianie. Przykładowe użycie
da następujący efekt Kod ąęśćłńóżźßüöäëáéíúçèîôàâêûùïñ------____ aesclnozzssuoaeaeiuceioaaeuuin-_ Uwaga: wszystkie znaki zostaną pozbawione ogonków, akcentów i 'umlałtów'. Niemieckie 'ß' zostanie zamienione na 'ss' i zawsze będą to małe litery. -------------------- Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 1 Dołączył: 31.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pozwoliem sobie usprawnic powyzsza funkcje.
przykładowe użycie:
da wynik
podczas gdy poprzednia funkcja dawała
generalnie oczyscilem troche kod i poprawilem blad w wyrazeniu regularnym. Dodatkowo jako zmienna $replace podajemy dowolny znak na jaki ma byc uzyty w zastepstwie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
zabrakło jednego znaku w preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($str)) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 10.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Od PHP 5.3 pojawia się następujący błąd: Deprecated: Function ereg_replace() is deprecated Funkcja teraz działa prawidłowo.
|
|
|
![]()
Post
#7
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
aleś odgrzebał kotleta...
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.06.2025 - 00:18 |