php - 将标题大小写应用于字符串中除指定首字母缩略词之外的所有单词

标签 php string blacklist acronym title-case

示例输入:SMK SUNGAI PUNAI

我的代码:

$school = 'SMK SUNGAI PUNAI';
echo ucwords(strtolower($school));

不需要的输出:Smk Sungai Punai

问题

如何使输出 SMK Sungai Punai 允许 SMK 保持全大写。

更新。

问题我有 10,000 个学校名称的列表。从 PDF,我转换为 mysql。我从 PDF 中准确地复制了学校的名称——全部大写。

如何实现条件标题大小写?

最佳答案

据我了解,您希望所有学校名称的每个单词的第一个字符都大写,并在此处理中排除一些特殊单词(我的示例中的异常(exception)情况)。

你可以这样做:

   function createSchoolName($school) {
      $exceptions = array('SMK', 'PTS', 'SBP');
      $result = "";
      $words = explode(" ", $school);
      foreach ($words as $word) {
          if (in_array($word, $exceptions))
              $result .= " ".$word;
          else
              $result .= " ".strtolower($word);
      }
      return trim(ucwords($result));
   }

echo createSchoolName('SMK SUNGAI PUNAI');

此示例将根据您的问题返回 SMK Sungai Punai

关于php - 将标题大小写应用于字符串中除指定首字母缩略词之外的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249581/

相关文章:

javascript - 如何在 Javascript 字符串中的温度中添加度数符号?

Ajax生成内容、抓取和黑名单

devise - 如何使用 Devise 将用户名列入黑名单?

从android数据库中获取数据的php脚本

javascript - PHP trait 的 nodejs 等价物是什么

php - JavaScript 和 PHP 文件名编码约定

c - printf 浮点值的字符串格式

php - 确定 PHP 对象的名称

mysql - 在MySQL中分割字符串并进行计算

elasticsearch - 使用ElasticSearch搜索时指定索引黑名单