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));
-
}
-
</code>
December 27th, 2007 at 4:43 pm
merhaba,
öncelikle bu paylaşımınız için teşekkür ederim.
ben genellikle system dosyalarına dokumandan bu işi halletmeyi yeğelerim.
fakat bu haliylede kullanılabilir. Bu yüzden fonksiyonun TR karakterleri düzgün olarak değiştirebilmesi için bir uyarıda bulunmak isterim.
url_helper dosyasını utf-8 formatında kaydetmezseniz fonksiyona eklediğiniz yerlerin bir önemi kalmıyor, yani TR karakterleri çeviremiyor.
bilginize.
February 10th, 2008 at 9:03 pm
çok doğru söylemişsiniz; bu detayı belirtmeyi unutmuşum. editplus kullandığımdan tüm dosyaları zaten otomatik olarak UTF-8 kaydetme alışkanlığını edindim. ama bu yazıyı okuyanları uyarmak gerekliydi… teşekkürler.