ceskyDJ

Odstranění speciálních znaků a diakritiky

Sep 4th, 2016
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.59 KB | None | 0 0
  1. /**
  2.  * Odstraní diakritiku a speciální znaky z textového řetězce
  3.  *
  4.  * @author Michal ŠMAHEL (ceskyDJ) <[email protected]>
  5.  * @copyright (C) 2016 - současnost Michal ŠMAHEL, Vladislav Domin
  6.  *
  7.  * @param String $string Vstupní textový řetězec
  8.  *
  9.  * @var String $lower_case_string Převedený vstup na malá písmena
  10.  * @var String $without_special_chars Odstraněna diakritika
  11.  * @var String $without_problem_chars Odstraněny speciální znaky
  12.  *
  13.  * @return string Výsledný upravený řetězec (malými písmeny)
  14.  */
  15. function removeSpecialCharsFromString($string) {
  16.     // Malými písmeny
  17.     $lower_case_string = mb_strtolower($string);
  18.  
  19.     // Odstranění speciálních znaků (písmen s diakritikou)
  20.     $without_special_chars = str_replace(
  21.         array("á", "ä", "č", "ď", "é", "ě", "í", "ó", "ö", "ř", "š", "ť", "ů", "ú", "ü", "ý", "ž", "ď", "ť", "ň"),
  22.         array("a", "a", "c", "d", "e", "e", "i", "o", "o", "r", "s", "t", "u", "u", "u", "y", "z", "d", "t", "n"),
  23.         trim($lower_case_string)
  24.     );
  25.  
  26.     // Nahrazení nebezpečných znaků za pomlčky, textovou verzi případně jejich odstranění
  27.     $without_problem_chars = str_replace(
  28.         array(" - ", " ", ",", ".", "?", "!", "_", "%", ":", "|", "=", ")", "(", "[", "]", "&", ";", '\'', "\"", "€", "^", "<", ">", "#", '´', '+', '®', '™', '@'),
  29.         array("-", "-", "", "", "", "", "-", "procent", "", "-", "-", "", "", "", "", "a", "", "", "", "euro", "", "", "", "id-", '', '-', '', '', ''),
  30.         $without_special_chars
  31.     );
  32.  
  33.     return $without_problem_chars;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment