我试图将大写文本显示为短语中的第一个大写字母。如果有任何特殊字符,则必须忽略它们。
例如:
第1部分:确定物质/制剂和物质 公司/企业
以上是我的文字,我希望上面的文字显示为
第1节:物质/制剂和物质的鉴定 公司/企业
截至目前,我尝试了 echo ucfirst(strtolower($ word));
输出
第1节:物质/制剂和物质的鉴定 公司/企业
我怎样才能做到这一点? 谢谢
答案 0 :(得分: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*
在:
或.
上分开,两边都有可选的间距。您可以在要分割的字符类中添加更多字符。
答案 1 :(得分:0)
您可以分为两部分:
$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