第一个字符大写,并忽略PHP中的几个特殊字符

时间:2017-03-09 15:53:13

标签: php regex ucfirst

我试图将大写文本显示为短语中的第一个大写字母。如果有任何特殊字符,则必须忽略它们。

例如:

  

第1部分:确定物质/制剂和物质   公司/企业

以上是我的文字,我希望上面的文字显示为

  

第1节:物质/制剂和物质的鉴定   公司/企业

截至目前,我尝试了 echo ucfirst(strtolower($ word));

输出

  

第1节:物质/制剂和物质的鉴定   公司/企业

我怎样才能做到这一点? 谢谢

2 个答案:

答案 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