php - 没有正则表达式的句子大小写

标签 php string

是否有一个内置的 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/

相关文章:

PHP - bind_result 到数组

c# - foreach 中分隔逗号和行

php - 保持 URL 相同,加载 index.php

php - css 没有加载到主机上的我的 wordpress 网站上

php - 处理 Paypal 付款执行期间的错误

c - 我不知道这段代码出了什么问题?

c++ - 评估 C++ 字符串中的表达式 : "Hi ${user} from ${host}"

java - 不使用正则表达式从查询字符串中删除一个参数

javascript - 如何修复这个程序,让它只搜索我的名字?

php - 检测 Mod_Security 是否随 PHP 安装?