ceskyDJ icon

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

ceskyDJ | PRO | 09/04/16 11:48:43 AM UTC | 0 ⭐ | 329 👁️ | Never ⏰ | []
PHP |

1.59 KB

|

None

|

0 👍

/

0 👎

/**
 * Odstraní diakritiku a speciální znaky z textového řetězce
 *
 * @author Michal ŠMAHEL (ceskyDJ) <[email protected]>
 * @copyright (C) 2016 - současnost Michal ŠMAHEL, Vladislav Domin
 *
 * @param String $string Vstupní textový řetězec
 *
 * @var String $lower_case_string Převedený vstup na malá písmena
 * @var String $without_special_chars Odstraněna diakritika
 * @var String $without_problem_chars Odstraněny speciální znaky
 *
 * @return string Výsledný upravený řetězec (malými písmeny)
 */
function removeSpecialCharsFromString($string) {
    // Malými písmeny
    $lower_case_string = mb_strtolower($string);
 
    // Odstranění speciálních znaků (písmen s diakritikou)
    $without_special_chars = str_replace(
        array("á", "ä", "č", "ď", "é", "ě", "í", "ó", "ö", "ř", "š", "ť", "ů", "ú", "ü", "ý", "ž", "ď", "ť", "ň"),
        array("a", "a", "c", "d", "e", "e", "i", "o", "o", "r", "s", "t", "u", "u", "u", "y", "z", "d", "t", "n"),
        trim($lower_case_string)
    );
 
    // Nahrazení nebezpečných znaků za pomlčky, textovou verzi případně jejich odstranění
    $without_problem_chars = str_replace(
        array(" - ", " ", ",", ".", "?", "!", "_", "%", ":", "|", "=", ")", "(", "[", "]", "&", ";", '\'', "\"", "€", "^", "<", ">", "#", '´', '+', '®', '™', '@'),
        array("-", "-", "", "", "", "", "-", "procent", "", "-", "-", "", "", "", "", "a", "", "", "", "euro", "", "", "", "id-", '', '-', '', '', ''),
        $without_special_chars
    );
 
    return $without_problem_chars;
}

Comments