CodeIgniter için Türkçe URL_title fonksiyonu
Aşağıda sıklıkla kullanmaya başladığım CodeIgniter için helpers/url_helper içerisinde yer alan url_title fonksiyonunun Türkçe karakterleri düzgün replace eden hali bulunuyor. Fonksiyon çok global bir library mantığında olduğu için, bir string içeriğin URL’e uygun hale getirmek isterseniz de kullanabilirsiniz.
function url_title($str, $separator = ‘dash’)
{
if ($separator == ‘dash’)
{
$search = ‘_’;
$replace = ‘-’;
}
else
{
$search = ‘-’;
$replace = ‘_’;
}
$trans_tr = array(
"ç"=> ‘c’,
"Ç"=> ‘c’,
"ş"=> ’s’,
"Ş"=> ’s’,
"ı"=> ‘i’,
"İ"=> ‘i’,
"ğ"=> ‘g’,
"Ğ"=> ‘g’,
"ü"=> ‘u’,
"Ü"=> ‘u’,
"ö"=> ‘o’,
"Ö"=> ‘o’,
"\("=> ‘_’,
"\)"=> ‘_’
);
foreach ($trans_tr as $key => $val)
{
$str = preg_replace("/".$key."/", $val, $str);
}
$trans = array(
$search => $replace,
"\s+" => $replace,
"[^a-z0-9".$replace."]" => ”,
$replace."+" => $replace,
$replace."$" => ”,
"^".$replace => ”
);
$str = strtolower($str);
$str = strip_tags($str);
foreach ($trans as $key => $val)
{
$str = preg_replace("/".$key."/", $val, $str);
}
return trim(stripslashes($str));
}