Taky jsem před časem bádal a taky nenašel elegantní způsob.
Používám tyhle funkce :
( už si nepamatuji, co jsem ukradl z inetu a co doplnil )
( ty české znaky má Squad leader líp a přehledněji )
( slovenské a jiné znaky je nutné doplnit)
function pritulne_url($url) {
$url = zrus_cestinu( $url ) ;
$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
$url = trim($url, "-");
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
$url = strtolower($url);
$url = preg_replace('~[^-a-z0-9_]+~', '', $url);
return $url;
}
function ceske_znaky() {
$ceske=array("ž","Ž","ř","Ř","š","Š","č","Č","ň","Ň","á","é","í","ó","ú","ů","Á","É","Í","Ó","Ú","Ů","ý","Ý","ě","Ě","Ď","ď","Ť","ť") ;
$nahra=array("z","Z","r","R","s","S","c","C","n","N","a","e","i","o","u","u","A","E","I","O","U","U","y","Y","e","E","D","d","T","t") ;
return array($ceske,$nahra) ;
}
function zrus_cestinu($retez) {
$ceske_znaky=ceske_znaky() ;
$ceske=$ceske_znaky[0] ;
$nahra=$ceske_znaky[1] ;
return str_replace($ceske,$nahra,$retez) ;
}