Php 如何使某些单词保持大写

Php 如何使某些单词保持大写,php,Php,我的数据库中的示例SMK SUNGAI PUNAI $school = 'SMK SUNGAI PUNAI'; echo ucwords(strtolower($school)); 输出Smk Sungai Punai 问题 如何使输出将是SMK Sungai Punai,其中SMK仍为大写 更新。 问题是我有10K的学校名称列表。我从PDF转换成mysql。我完全照抄了学校的名称。全部大写。如果可以的话,我需要一个解决方案。没有真正好的方法。在这种情况下,你可以假设它是一个缩写,因为它只有三

我的数据库中的示例
SMK SUNGAI PUNAI

$school = 'SMK SUNGAI PUNAI';
echo ucwords(strtolower($school));
输出
Smk Sungai Punai

问题

如何使输出将是
SMK Sungai Punai
,其中SMK仍为大写

更新。


问题是我有10K的学校名称列表。我从PDF转换成mysql。我完全照抄了学校的名称。全部大写。如果可以的话,我需要一个解决方案。

没有真正好的方法。在这种情况下,你可以假设它是一个缩写,因为它只有三个字母长,不包含元音。您可以编写一组规则,在字符串中查找缩写,然后大写,但在某些情况下,这是不可能的。。。考虑到“鲍勃玩得太多了”。

< p>据我所知,你希望所有的学校名字都有大写字母的每个单词的第一个字符,并且从这个处理中排除一些特殊的词(在我的样本中有例外)。 你可以这样做:

   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');
<?php
$str = 'SMK SUNGAI PUNAI';
$str = strtolower($str);
$arr = explode(" ", $str);

$new_str = strtoupper($arr[0]). ' ' .ucfirst($arr[1]). ' ' .ucfirst($arr[2]);
echo '<p>'.$new_str.'</p>';

// Result: SMK Sungai Punai
?>

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

您可以使用以下内容:

   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');
<?php
$str = 'SMK SUNGAI PUNAI';
$str = strtolower($str);
$arr = explode(" ", $str);

$new_str = strtoupper($arr[0]). ' ' .ucfirst($arr[1]). ' ' .ucfirst($arr[2]);
echo '<p>'.$new_str.'</p>';

// Result: SMK Sungai Punai
?>


您能否根据单词中的元音来确定这一点?另外,你有这些大写字母的列表吗?请描述你的问题,而不是不起作用的解决方案。通过api的预期结果,输出是有效的。基于什么规则,您希望单词以大写字符开头的大写或小写顺序?