と仮定すると、単語はスペースで区切られて参照してください。
<?php
function custom_ucfirst($s)
{
$s = strtolower($s);
$e = (strpos($s, ' ') !== false ? explode(' ', $s) : array($s));
$keep_all_lowercase = array('or','and','but');
foreach($e as $k=>$v)
{
if(!in_array($v, $keep_all_lowercase))
{
$str_split = str_split($v);
foreach($str_split as $k2=>$v2)
{
if(in_array($v2, range('a','z')))
{
$str_split[$k2] = strtoupper($v2);
break;
}
}
$e[$k] = implode('', $str_split);
}
}
return implode(' ', $e);
}
echo custom_ucfirst('†HELLO THERE .cloud. or sky what a nice an*d()good day.');
// †Hello There .Cloud. or Sky What A Nice An*d()Good Day.
あなたは「特殊文字」とはどういう意味ですか? "é"は特殊文字ですか? –
まあ、私はこの†(この場合)のような特殊文字について話しています。 –
それでは、どのように '' HELLO''''''''''''''''を出力するのですか? – MonkeyZeus