PHP Capitalize str_replace если после точки

У меня есть str_replace, который заменяет [++] словом He, но если [++] имеет точку и пробел перед ним или просто точку, то это должен быть He с большой буквы H, иначе это должен быть he строчными буквами ч.

$filterString = "[++] has performed well. [++] is showing good understanding";

echo str_replace("[++]", "Name", $filterString);

Какие-либо предложения?

Спасибо

3 ответа

Решение

Попробуйте следующий код:

$filterString = "[++] has performed well. [++] is showing good understanding";

echo str_replace(array(". [++]",".[++]","[++]"), array(". He",".He","he"), $filterString);

Мы можем использовать массивы в str_replace. Просто проверяю . [++], .[++] сначала и заменить на HeЗатем мы проверяем остатки и меняем их на he,

Попробуй этот код сделать замену в два шага

$filterString = str_replace("\. [++]", ". He", $filterString);
echo str_replace("[++]", "he", $filterString);

Мы действительно можем использовать 1 str_replace():

$filterString = "[++] has performed well. [++] is showing good understanding";
echo str_replace(array('. [++]', '[++]'), array('. He', 'he'), $filterString);

какие выводы:

он хорошо выступил. Он показывает хорошее понимание


Примечание: другая функция ucfirst() предоставляет интересную функцию, которую вы, возможно, захотите использовать: она делает первый символ строки заглавным. Если вы хотите, чтобы первый символ каждого предложения был в верхнем регистре, вы можете разбить входной абзац с разделителем . и использовать эту функцию, то implode() это обратно с клеем .,

Другие вопросы по тегам