1

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

例如:

第 1 部分:物质/制备和公司/企业的识别

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

第 1 部分:物质/制剂和公司/企业的识别

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

哪个输出

第 1 部分:物质/制剂和公司/企业的识别

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

4

2 回答 2

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*在任一侧拆分:或可选间隔。.您可以在要拆分的字符类中添加更多字符。

于 2017-03-09T16:08:00.467 回答
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
于 2017-03-09T15:59:49.630 回答