$trmetin değişkenini oluşturmak istediğiniz türkçe karakter içeren bir metin olarak atadığınızda php yorumlayıcısı size tükçe karakterleri düzeltip boşluklarında yerine ( - ) atıp veriyor. Umarım işinize yarar.
<?php
$trmetin = "BÜYÜK küçük Şunun Çıktısını Al, Üstün Ödül Oğul!";
echo("<b>Düzenlemeden önce:</b> $trmetin <br /><hr> ");
$trkucukmetin = strtolower("$trmetin");
echo("<b>Harfler Küçüldü:</b> $trkucukmetin <br /><hr> ");
$metin = str_replace("ş","s",$trkucukmetin);
$metin = str_replace("ç","c",$metin);
$metin = str_replace("ü","u",$metin);
$metin = str_replace("ı","i",$metin);
$metin = str_replace("ğ","g",$metin);
$metin = str_replace("ö","o",$metin);
$metin = str_replace(",","",$metin);
$metin = str_replace("!","",$metin);
$metin = str_replace(".","",$metin);
$encodemetin = urlencode($metin);
$seometin = str_replace("+","-",$encodemetin);
echo ("<b>Sonuç:</b> $seometin");
?>Tekrar "$encodemetin = urlencode($metin);" kullanmamın sebebi metin içinde sorun çakarabilecek çeşitli karakterleri zararsız hale getirmektir.