PHP - funkce na odstranění diakritiky, mezer a speciálních znaků
Situace: Používáme PHP a potřebujeme funkci, která odstraní z nějakého řetězce diakritiku, speciální znaky (hvězdičky, lomítka, podtržítka, otazníky atd.), velká písmena přepíše na malá a mezery nahradí pomlčkami. Jak na to?
PHP funkce na odstranění diakritiky, speciálních znaků (hvězdičky, lomítka, podtržítka, otazníky atd.), mezer atd. by mohla vypadat takto:
ODPOVĚĎ
PHP funkce na odstranění diakritiky, speciálních znaků (hvězdičky, lomítka, podtržítka, otazníky atd.), mezer atd. by mohla vypadat takto:
public function webalize($string) {
$string = Str_Replace(
Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý","ž","Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž") ,
Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z","A","C","D","E","E","I","L","N","O","R","S","T","U","U","Y","Z") ,
$string);
$string = Str_Replace(Array(" ", "*", "=", "_", ".", ".", ",", ":", "\\", "/", " - "), "-", $string); //nahradí mezery a podtržítka pomlčkami
$string = Str_Replace(Array("(",")",".","<",">","!",",","\"","'","?","+"), "", $string); //odstraní speciální znaky
$string = Str_Replace(Array("----", "---", "--"), "-", $string); //odstraní více pomlček
$string = StrToLower($string); //velká písmena nahradí malými.
$string = preg_replace('/\-$/', '', $string); //odstraní čárku na konci
return $string;
}