Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Klasa / funkcja PHP zmieniajaca litery narodowe na podstawowe
Forum PHP.pl > Forum > Gotowe rozwi±zania
Ciosek
Witam.

Mozliwe ze troche skomplikowalem nazwe tematu wiec wyjasniam o co mi chodzi:

Szukam klasy/funkcji/skryptu/algorytmu PHP ktora zmieni litery narodowe na litery "podstawowe" tzn.:

± -> a
æ -> c

Znalazlem jezyka polskiego jednak chodzi mi o wiekszasc ilosc jezykow (przede wszystkim: niemiecki, wêgierski, francuski)

Moze jest cos takiego dla calego UTF-8?


Bede wdzieczny za wszelka pomoc.
Sephirus
Algorytm jest prosty. Dla PL by³oby to przyk³adowo co¶ zbli¿onego do:

  1. $plLetters = '±¿¶¼êæñ󳡯¦¬ÊÆÑÓ£';
  2. $plLettersFixed = 'azsxecnolAZSXECNOL';
  3.  
  4. $string = str_replace(str_split($plLetters),str_split($plLettersFixed),$string);


Podobnie mo¿na za³atwiæ resztê jêzyków lecz trzeba napisaæ dla ka¿dego literki specjalne.
rocktech.pl
Witam.

  1. setlocale(LC_CTYPE, 'pl_PL');
  2. setlocale(LC_COLLATE, 'pl_PL');
  3.  
  4. echo iconv('UTF-8','ASCII//TRANSLIT//IGNORE','Æmi±');
  5.  
  6. setlocale(LC_CTYPE, 'fr_FR');
  7. setlocale(LC_COLLATE, 'fr_FR');
  8.  
  9. echo iconv('UTF-8','ASCII//TRANSLIT//IGNORE','République française');
sowiq
Z str_replace radzê uwa¿aæ. Z UTF-8 bêdziesz mia³ niema³e problemy.

Polecam bardzo dobr± klasê z Doctrine: https://github.com/l3pp4rd/DoctrineExtensio...til/Urlizer.php

  1. echo Urlizer::unaccent($string)
piotrex41
Ja u¿ywam mojej funkcji. Wygl±da ona tak:
  1. protected function title2url($string)
  2. {
  3. $unPretty = array('/ä/', '/ö/', '/ü/', '/Ä/', '/Ö/', '/Ü/', '/ß/',
  4. '/±/', '/¡/', '/æ/', '/Æ/', '/ê/', '/Ê/', '/³/', '/£/' ,'/ñ/', '/Ñ/', '/ó/', '/Ó/', '/¶/', '/¦/', '/¼/', '/¬/', '/¿/', '/¯/',
  5. '/©/','/®/','/¹/','/¾/','/Ÿ/','/À/','/Á/','/Â/','/Ã/','/Ä/','/Å/','/Ç/','/È/','/É/','/Ê/','/Ë/','/Ì/','/Í/','/Î/','/Ï/','/Ñ/',
  6. '/Ò/','/Ó/','/Ô/','/Õ/','/Ö/','/Ø/','/Ù/','/Ú/','/Û/','/Ü/','/Ý/','/à/','/á/','/â/','/ã/','/ä/','/å/','/ç/','/è/','/é/','/ê/',
  7. '/ë/','/ì/','/í/','/î/','/ï/','/ñ/','/ò/','/ó/','/ô/','/õ/','/ö/','/ø/','/ù/','/ú/','/û/','/ü/','/ý/','/ÿ/',
  8. '/Þ/','/þ/','/Ð/','/ð/','/ß/','/Œ/','/œ/','/Æ/','/æ/','/µ/');
  9.  
  10. $pretty = array('ae', 'oe', 'ue', 'Ae', 'Oe', 'Ue', 'ss',
  11. 'a', 'A', 'c', 'C', 'e', 'E', 'l', 'L', 'n', 'N', 'o', 'O', 's', 'S', 'z', 'Z', 'z', 'Z',
  12. 'S','Z','s','z','Y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N',
  13. 'O','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e',
  14. 'e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y',
  15. 'TH','th','DH','dh','ss','OE','oe','AE','ae','u');
  16.  
  17. $permalink = strtolower(preg_replace($unPretty, $pretty, $string));
  18. return str_replace(' ', '-', preg_replace('/[^a-zA-Z0-9 ]/', '', $permalink) );
  19. }

Musia³ by¶ sobie tylko dostosowaæ, bo zamienia ona tak¿e spacje na my¶lniki. Poza tym, dzia³a bez bardzo dobrze - testowana.
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-2024 Invision Power Services, Inc.