Uygulamalarımızda resim yada dosya yüklemesi yaparken dosya isimlerinde bulunan uygun olmayan karakterleri düzeltme gereksinimi duyarız. Ya da SEO uyumlu siteler yaparken, hazırladığımız sitedeki içerik için URL dostu adresler üretmemiz gerekir. İşte bu durumlarda kullandığım sadece türkçe değil aslında pek çok dil için yararlı olabilecek bir fonksiyon kullanıyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | function temizisim($str) { $ozelHarfler = array( 'a' => array('á','à','â','ä','ã'), 'A' => array('Ã','Ä','Â','À','Á'), 'e' => array('é','è','ê','ë'), 'E' => array('Ë','É','È','Ê'), 'i' => array('í','ì','î','ï','ı'), 'I' => array('Î','Í','Ì','İ','Ï'), 'o' => array('ó','ò','ô','ö','õ'), 'O' => array('Õ','Ö','Ô','Ò','Ó'), 'u' => array('ú','ù','û','ü'), 'U' => array('Ú','Û','Ù','Ü'), 'c' => array('ç'), 'C' => array('Ç'), 's' => array('ş'), 'S' => array('Ş'), 'n' => array('ñ'), 'N' => array('Ñ'), 'y' => array('ÿ'), 'Y' => array('Ÿ') ); $ozelKarakterler = array ('#', '$', '%', '^', '&', '*', '!', '~', '"', '\'', '=', '?', '/', '[', ']', '(', ')', '|', '<', '>', ';', ':', '\\', ', '); $str = str_replace($ozelKarakterler, '', $str); $str = str_replace(' ', '-', $str); foreach($ozelHarfler as $harf => $ozeller){ foreach($ozeller as $tektek){ $str = str_replace($tektek, $harf, $str); } } return preg_replace("/[^a-zA-Z0-9\-\.]/", "_", $str); } |
Yukarıdaki fonksiyonu aşağıdaki şekilde kullandığımızda
<?php echo temizisim('Bu çok özel bir uğraşı!') ?> |
Alacağınız sonuç aşağıdaki gibi olcaktır.
Bu_cok_ozel_bir_ugrasi |
Bu fonksiyona dilenirse boşluk ayracı olarak kullanılacak karakter bir seçenek olarak gönderilebilir; – ve _ olarak. Yada ismin küçük harflere dönüştürülmesi için de bir parametre kullanmak mümküdür
Bir sonraki yazımda buna benzer bir fonksiyon ile CodeIgniter’a bir yardımda bulunacağız.