Witam,

mam przykładowy ci±g znaków

  1. <?php
  2. $text = \"Europa to my\" - Konferencja Europejska ó¶±ł¶±¶ń±¶±óNNALSKDAˇ¦ŃѡӠzweitgrößte";
  3. ?>


Chciałbym żeby skrypt przerobił go na:

  1. europa-to-my-konferencja-europejska-osalsasnasaonnalskdaasnnao-zweitgroste


Szukałem i udało mi się skleić co¶ takiego:

  1. <?php
  2. $text = \"Europa to my\" - Konferencja Europejska ó¶±ł¶±¶ń±¶±óNNALSKDAˇ¦ŃѡӠzweitgrößte";
  3.  
  4. echo clearDiacritics($text);
  5.  
  6. function clearDiacritics($sText){
  7.  
  8.  
  9. $aReplacePL = array(
  10. '±' => 'a', 'ę' => 'e', '¶' => 's', 'ć' => 'c',
  11. 'ó' => 'o', 'ń' => 'n', 'ż' => 'z', 'Ľ' => 'z', 'ł' => 'l','-'=> ' ',
  12. ',' => '', ' ' => '-', '.' => '','ˇ' => 'A', 'Ę' => 'E', '¦' => 'S', 'Ć' => 'C',
  13. 'Ó' => 'O', 'Ń' => 'N', 'Ż' => 'Z', '¬' => 'Z', 'Ł' => 'L', '%' => 'procent'
  14. );
  15.  
  16. $text = strtolower(str_replace(array_keys($aReplacePL), array_values($aReplacePL), trim($sText)));
  17. return preg_replace( '/[^a-z-]+/i', '', $text );
  18. }
  19. ?>


Działa nie do końca poprawnie bo wy¶wietla mi

  1. europa-to-my---konferencja-europejska-osalsasnasaonnalskdaasnnao-zweitgrte


Podejrzewam że da się to zrobić lepiej i na pewno krócej.