示例输入: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/