是否有一个内置的 php 函数,或者一个简单(高效!)的方法来组合内置函数,给出一个字符串句子大小写(“句子一。句子二。”)?
PHP 具有类似的内置函数,但我找不到适合我的用途的函数:
ucfirst(strtolower("第一个句子。这里有两个。"))
返回“第一个句子。这里有两个。”; ucwords(strtolower("第一个句子。这是两个。"))
"第一个句子。这是第二个。"
最佳答案
function sentence_case($str) {
$cap = true;
$ret='';
for($x = 0; $x < strlen($str); $x++){
$letter = substr($str, $x, 1);
if($letter == "." || $letter == "!" || $letter == "?"){
$cap = true;
}elseif($letter != " " && $cap == true){
$letter = strtoupper($letter);
$cap = false;
}
$ret .= $letter;
}
return $ret;
}
这将保留现有的专有名词大写字母、首字母缩略词和缩写词。
关于php - 没有正则表达式的句子大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382839/