Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] konwersja polskich znaków do łaćińskich odpowiedników, czyli zmina 'ą' na 'a', 'ć' na 'c', it
barthpl
post
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:
  1. <?php
  2. $arg1 = array('ą', 'Ą', 'ć', 'Ć', 'ę', 'Ę', 'ł', 'Ł', 'ń', 'Ń', 'ó', 'Ó', 'ś', 'Ś', 'ź', 'Ź', 'ż', 'Ż' );
  3. $arg2 = array('a', 'a', 'c', 'c', 'e', 'e', 'l', 'l', 'n', 'n', 'o', 'o', 's', 's', 'z', 'z', 'z', 'z' );
  4. $out = str_replace ( $arg1, $arg2, $str );
  5. ?>

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
haron
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.01.2011

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


  1. function str2url( $str, $replace = "-" ){
  2.  
  3. // konwersja znaków utf do znaków podstawowych
  4. $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
  5.  
  6. // Niektóre francuskie i niemieckie litery pozostawiają po takiej konwersji (jak powyżej)
  7. // dodatkowe znaki. Poniższe dwie linijki te znaki wycinają
  8.  
  9. $charsArr = array( '^', "'", '"', '`', '~');
  10. $str = str_replace( $charsArr, '', $str );
  11.  
  12. $return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($str))));
  13. return str_replace(' ', $replace, $return);
  14. }


zabrakło jednego znaku w preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($str))
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 04:44