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));
}

Yorum Yapın