Ben sorun aradığım tam olarak ne yapar bir işlevi bulmak vardı. Ne yazık ki, bu işlev UTF-8 uyumlu değildir. Bu fonksiyonlar temel bir ucwords
gibi ama aynı zamanda buldum verilen karakterlerden biri (benim durumumda bir {[(1 sonra bulundu karakteri büyük harf uygulamak gerekir ardından bir karakteri büyük harfe yok )]}).
İşte fonksiyonudur:
<?php
function my_ucwords($string)
{
$noletters='"([/-'; //add more if u need to
for($i=0; $i<strlen($noletters); $i++)
$string = str_replace($noletters[$i], $noletters[$i].' ', $string);
$string=ucwords($string);
for($i=0; $i<strlen($noletters); $i++)
$string = str_replace($noletters[$i].' ', $noletters[$i], $string);
return $string;
}
$title = 'ELVIS "THE KING" PRESLEY - (LET ME BE YOUR) TEDDY BEAR';
echo my_ucwords(strtolower($title));
?>
En kısa sürede benim dizesine aksan eklemek gibi, örneğin:
echo my_ucwords(strtolower( "saint-étienne" )) //return: Saint- instead of Saint-Étienne
Herhangi bir fikir? Biliyorum yerine strlen
Ben kullanabilirsiniz mb_strlen
. Ama ne diğerleri?
Edit:
Just a reminder that I do not only need a simple ucwords
working in UTF-8
. I need it to apply the uppercase on any character found after a -
.
Ben de hala kendime bunu anlamaya çalışıyorum.