我想使用 PHP 通过大写每个单词来清理一些标题,包括斜线后面的那些。但是,我不想将单词“and”、“of”和“the”大写。
下面是两个示例字符串:
会计技术/技术员和簿记
脊柱骨科手术
应更正为:
会计技术/技术员和簿记
脊柱整形外科
这是我目前拥有的。我不确定如何将内爆与 preg_replace_callback 结合起来。
// Will capitalize all words, including those following a slash
$major = implode('/', array_map('ucwords',explode('/',$major)));
// Is supposed to selectively capitalize words in the string
$major = preg_replace_callback("/[a-zA-Z]+/",'ucfirst_some',$major);
function ucfirst_some($match) {
$exclude = array('and','of','the');
if ( in_array(strtolower($match[0]),$exclude) ) return $match[0];
return ucfirst($match[0]);
}
现在它将字符串中的所有单词大写,包括我不想要的单词。