[PHP] Jak usunąć polskie znaki?
Niekiedy zdarza się sytuacja, gdy potrzebujemy z jakiegoś tekstu usunąć znaki diakrytyczne. Przydaje się to np. do generowania przyjaznych linków lub do innych celów, których wymaga dany projekt. W tym wpisie pokażę jak napisać prostą funkcję zamieniającą litery diakrytyczne na zwykłe litery alfabetu.
Mechanizm działania będzie bardzo prosty. Używając wbudowanych w PHP funkcji array_keys, array_values oraz str_replace będziemy podmieniać litery diakrytyczne na zwykłe litery bez ogonków. Przejdźmy zatem do rzeczy.
Tworzymy funkcję
<?php
function replace_diacritics($string)
{
$characters = [];
$characters['Ą'] = 'a';
$characters['Ć'] = 'c';
$characters['Ę'] = 'e';
$characters['Ł'] = 'l';
$characters['Ń'] = 'n';
$characters['Ó'] = 'o';
$characters['Ś'] = 's';
$characters['Ż'] = 'z';
$characters['Ź'] = 'z';
$characters['ą'] = 'a';
$characters['ć'] = 'c';
$characters['ę'] = 'e';
$characters['ł'] = 'l';
$characters['ń'] = 'n';
$characters['ó'] = 'o';
$characters['ś'] = 's';
$characters['ż'] = 'z';
$characters['ź'] = 'z';
$keys = array_keys($characters);
$values = array_values($characters);
return str_replace($keys, $values, $string);
}
Opis funkcji - tworzymy tablicę ze znakami alfabetu, gdzie kluczami są litery diakrytyczne, a wartościami zwykłe litery. Następnie tworzymy dwie zmienne keys i values, do których przypisujemy odpowiednio dla zmiennej keys klucze oraz dla zmiennej values wartości. Na końcu zwracamy rezultat funkcji str_replace, którą podmieniamy klucze na wartości.
Przykładowe użycie
<?php
echo replace_diacritics('Nie lubię poniedziałku');
// Wyświetli: "Nie lubie poniedzialku"
Komentarze
Prześlij komentarz
Dzięki za komentarz!