regex — применить ucfirst () к первому символу, который не является HTML

Я выводю строку, собранную из нескольких разных частей, и некоторые из этих частей могут содержать или не содержать некоторый 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

Решение

  1. используйте strip_tags в $ text и сохраните в $ temp: это должно дать вам текст, который не является html.
  2. примените ucfirst к $ temp и назовите его $ temp_ucfirst: это должно дать вам строку в верхнем регистре.
  3. используйте str_replace для замены $ temp в $ text на $ temp_ucfirst: это должно заменить текст not-html на верхний регистр.
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]