开发者

PHP capitalize unicode string in brackets

I want to开发者_Python百科 capitalize every word even if it is in any kind of brackets () <> [] {}. It should capitalize unicode chars aswell.

For example:

ti si želva (čestitke)

should produce

Ti Si Želva (Čestitke)

I was using this function for very long time

function ucwords2($str)
{
    $str = strtolower($str);
    $str = preg_replace('/(?<![a-z]\')\b[a-z]/e', 'strtoupper(\'$0\')', $str);
    return $str;
}

but now i need unicode support so it became unusable.

Thank you!


Here's what works for me:

$txt='ti si želva (čestitke)';
echo mb_convert_case($txt,MB_CASE_TITLE,'utf-8');

Got it?


I think the isLower() function is unicode-aware, so I think this would be a better way to check the characters. Don't know how you can do this into your regexp.


Try this:

function to_up($txt){
    $up=mb_convert_case($txt,MB_CASE_TITLE,'utf-8');
    return strtr($up,
        array(
            "'S"=>"'s",
            "'D"=>"'d",
            "'L"=>"'l"
        )
    );
}

$txt="john, it's all your fault!";
echo to_up($txt);

Note that you can add anything you want in the array...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜