我需要将一些字符串/句子转换为小写,例如:“ ȘEF DE CABINET ”,然后仅将这些字符串的第一个单词(带有变音符号)的第一个字母转换为大写。我找到了一个函数,可以转换字符串中每个单词的第一个字母。如何使其适应我的需求?
这是代码:
function sentence_case( $s ) {
$s = mb_convert_case( $s, MB_CASE_LOWER, 'UTF-8' );
$arr = preg_split("//u", $s, -1, PREG_SPLIT_NO_EMPTY);
$result = "";
$mode = false;
foreach ($arr as $char) {
$res = preg_match(
'/\\p{Mn}|\\p{Me}|\\p{Cf}|\\p{Lm}|\\p{Sk}|\\p{Lu}|\\p{Ll}|'.
'\\p{Lt}|\\p{Sk}|\\p{Cs}/u', $char) == 1;
if ($mode) {
if (!$res)
$mode = false;
}
elseif ($res) {
$mode = true;
$char = mb_convert_case($char, MB_CASE_TITLE, "UTF-8");
}
$result .= $char;
}
return $result;
}