PHP - 将ucfirst()应用于不是HTML的第一个字符

时间:2018-02-20 02:50:47

标签: php regex capitalization ucfirst

我输出了从几个不同部分组装的字符串,其中一些部分可能包含也可能不包含某些HTML。如果我在要显示的文字之前将ucfirst()应用于字符串和HTML,那么该文字就无法获得正确的大小写。

$output = $before_text . $text . $after_text;

所以,如果我有

$before_text = 'this is the lead into ';
$text = 'the rest of the sentence';
$after_text = '.';

然后ucfirst()工作正常,$output

  

这是句子其余部分的主角。

但是这个

$before_text = '<p>';
$text = '<a href="#">the sentence</a>.';
$after_text = '</p>';

没有做任何事情。所以我想我需要一个函数或正则表达式来实现第一个实际的常规文本,然后将其大写。但我无法弄清楚。

1 个答案:

答案 0 :(得分:3)

  1. 在$ text中使用strip_tags并保存在$ temp中:这应该为您提供不是html的文本。
  2. 在$ temp上应用ucfirst并将其命名为$ temp_ucfirst:这应该为您提供字符串大写字母。
  3. 使用str_replace用$ temp_ucfirst替换$ text中的$ temp:这应该用not-html文本替换上层文本。