Kendi kullandığım fonksiyonu paylaşayayım eminim faydası olur.
 <?php       
        function seoURL($str) {
            $str = htmlspecialchars_decode($str);
            
            $turkce=array("ş","Ş","ı","ü","Ü","ö","Ö","ç","Ç","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç","ü","Ü");
			$duzgun=array("s","S","i","u","U","o","O","c","C","s","S","i","g","G","I","o","O","C","c","u","U");
            $str = str_replace($turkce,$duzgun,$str);
            
            
            $str = preg_replace('/[^a-zA-Z0-9]+/', '-', $str);
            $str = trim($str, '-');
            $str = strtolower($str);
            
            return $str;
        }
		
		
		$base = "http://www.deneme.com/";
		$parametre = "Bu bir URL DENEMESİDİR. 'TEST' & ĞÇ";
		
		echo $base . seoURL($parametre);
		
?>
Ekran Çıktısı
ÇIKTI: http://www.deneme.com/bu-bir-url-denemesidir-test-gc