PHP bu dize manipülasyon fonksiyon UTF-8 uyumlu dönüştürmek nasıl?

0 Cevap php

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.

0 Cevap