Cümle nasıl gelirse gelsin içinde büyük harfler küçük harfler olsun sizin için sadece baş harflerini büyüterek çıktı verecektir. Kullanışlık bir fonksiyon umarım işinize yarar. 

function upwords($sentence){

$letters = array('I','İ','Ç','Ş','Ü','Ö','Ğ');
$replace = array('ı','i','ç','ş','ü','ö','ğ');

$sentence = mb_strtolower(str_replace($letters,$replace,$sentence),"UTF-8");

$words = array();

foreach(explode(" ",$sentence) as $word) {

$first = str_replace($replace,$letters,mb_substr($word, 0, 1, "UTF-8"));

$other = mb_substr($word,1,strlen($word)-1,"UTF-8");

$words[] = $first.$other;

}

$sentence = implode(" ",$words);
return ucwords($sentence);

}

 Örneğin;

<p><?= upwords("Bu bloG BiR haRikA DoSTuM ğ ö ş i ç"); ?></p>

 Çıktı: Bu Blog Bir Harika Dostum Ğ Ö Ş İ Ç

Bol Projeli Günler..!