October 6, 2009 in Makaleler, PHP by tayfun.ozis.erikan
Çalışan halini Paperobot’ ta (http://www.paperobot.com/papers/sermaye-akimlarinin-temel-makroekonomik-gostergeler-uzerindeki-etkileri-turkiye-ornegi-1989-iii-19) kullandığımız, arama motoru dostu url ler olusturmanıza yarayacak, üstelik tüm dillerde sorunsuzca calışan utf8 destekli bir fonksiyonu sizinle paylaşmak istiyorum.
Method CodeIgniter’ ın url_title metodu gibi çalışmaktadır. Farkı ise sadece ingilizcede değil tüm dillerde istediğiniz sonucu veriyor olmasıdır. Ayrıca çevirmek istedeğiniz string değer içerisindeki bazı özel karakterleri de temizleyerek daha temiz bir url oluşturmanızı sağlamaktadır.
Araştırmalarım sonunda aşağıdaki methodu buldum ve çok işime yaradı, umarım sızın de işinizi görecektir. Simdilik nerden buldugumu hatırlayamadıgım için orjinal kaynagını refere edemıyorum. Yazan arkadaşın ellerine sağlık diyip durumu kurtaralım hiç olmazsa
Çalışan halini Paperobot’ ta (http://www.paperobot.com/papers/sermaye-akimlarinin-temel-makroekonomik-gostergeler-uzerindeki-etkileri-turkiye-ornegi-1989-iii-19) kullandığımız, arama motoru dostu url ler olusturmanıza yarayacak, üstelik tüm dillerde sorunsuzca calışan utf8 destekli bir fonksiyonu sizinle paylaşmak istiyorum.
Method CodeIgniter’ ın url_title metodu gibi çalışmaktadır. Farkı ise sadece ingilizcede değil tüm dillerde istediğiniz sonucu veriyor olmasıdır. Ayrıca çevirmek istedeğiniz string değer içerisindeki bazı özel karakterleri de temizleyerek daha temiz bir url oluşturmanızı sağlamaktadır.
Araştırmalarım sonunda aşağıdaki methodu buldum ve çok işime yaradı, umarım sızın de işinizi görecektir. Simdilik nerden buldugumu hatırlayamadıgım için orjinal kaynagını refere edemıyorum. Yazan arkadaşın ellerine sağlık diyip durumu kurtaralım hiç olmazsa ;)
Buyrun methodumuz:
/**
* UTF 8 Supported like url title helper
*
* @param string $string
* @return string $url
*/
function OSY_clean_url($string)
{
$url = str_replace("'", '', $string);
$url = str_replace('%20', ' ', $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;
}
Dilerseniz yukarıdaki methodu codeigniter helperı haline de getirerek CI uygulamalarınızda da kullanabilirsiniz. Nasıl CI helperları oluşturacağınızı öğrenmek için kullanım dokumanına bakabılırsınız.
Hemen örnek bir kullanım görüyoruz.
$string = "Biz Türk gençleri yazılım dünyasında ses getirecek projeler üreterek, ülkemizin gelişimine bilişim adına büyük katkılar sağlamalıyız...";
echo OSY_clean_url($string) ;
/*
Output:
--------
biz-turk-gencleri-yazilim-dunyasinda-ses-getirecek-projeler-ureterek-ulkemizin-gelisimine-bilisim-adina-buyuk-katkilar-saglamaliyiz
*/
Unutmadan belirteyim, kodlarınızın çalışabilmesi için php dosyanızı utf8 olarak kaydetmelisiniz.
October 6, 2009 at 4:35 pm | Kıvanç Çiftçi
Bu küçük ama etkili method için teşekkürler. PHP kurulumunuzda iconv desteğini açmayı unutmayınız.