我试图将大写文本显示为短语中的第一个大写字符。如果有任何特殊字符,它们必须被忽略。
例如:
第 1 部分:物质/制备和公司/企业的识别
以上是我的文字,我希望上面的文字显示为
第 1 部分:物质/制剂和公司/企业的识别
截至目前,我尝试了echo ucfirst(strtolower($word));
哪个输出
第 1 部分:物质/制剂和公司/企业的识别
我怎样才能做到这一点?谢谢
您可以split
使用:
被可选间隔包围并调用ucfirst
每个拆分项,然后将它们连接在一起:
$out="";
foreach (preg_split('/(\h*[:.]\h*)/', strtolower($str), 0, PREG_SPLIT_DELIM_CAPTURE) as $s)
$out .= ucfirst($s)
echo "$out\n";
//=> Section 1: Identification of the substance/preparation and of the company/undertaking
\h*[:.]\h*
在任一侧拆分:
或可选间隔。.
您可以在要拆分的字符类中添加更多字符。
你可以分成两部分:
$exploded = explode(': ', $phrase);
然后 ucfirst 每个部分:
$exploded[0] = ucfirst($exploded[0]);
$exploded[1] = ucfirst(strtolower($exploded[1]));
最后你可以加入所有:
echo join(': ', $exploded);
$phrase = 'SECTION 1: CIAO MONDO';
$exploded = explode(': ', $phrase);
$exploded[0] = ucfirst($exploded[0]);
$exploded[1] = ucfirst(strtolower($exploded[1]));
echo join(': ', $exploded); // Section 1: Ciao mondo