Мне нужно preg_replace некоторые части текста

Мне нужно заменить некоторые части текста, например:

"I like this car, but that car is good"

Допустим, мне нужно заменить «эту машину» на

"<u>this car</u>".

что не проблема

str_replace('this car','<u>this car</u>',$line)

Это заменит все совпадения.

Теперь мне нужно заменить одну «машину», которая уже не подчеркнута, на

<b>car</b>

и вот где я стек.

так что происходит, я делаю 1-ю замену и получаю текст:

"I like <u>this car</u>, but that car is good"

если я сделаю

str_replace('car','<b>car</b>',$line)

я закончу с этим:

"I like <u>this <b>car<b></u>, but that <b>car</b> is good"

что не есть хорошо, т.к. 1-й матч уже подчеркнут.

Пожалуйста, предложите

Это не совсем то решение, которое вам нужно, но вы всегда можете использовать CSS, чтобы убрать жирным шрифт с подчеркнутого тега <b> ~ ul b { font-weight: normal; }

Phil 13.05.2019 02:03

Нет, мне нужен настоящий html

Boris 13.05.2019 02:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
29
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать strtr для этого задания, так как оно сначала заменит более длинные совпадения, а затем более короткие, игнорируя все, что уже было заменено. Например:

$string = "I like this car, but that car is good";
echo strtr($string, array('this car' => '<u>this car</u>', 'car' => '<b>car</b>'));

Выход:

I like <u>this car</u>, but that <b>car</b> is good

Демо на 3v4l.org

Спасибо! Как теперь закрыть этот вопрос? знак равно

Boris 13.05.2019 02:28

@Boris, вы можете принять ответ, щелкнув галочку под стрелками вверх / вниз рядом с вопросом. См. stackoverflow.com/help/someone-answers

Nick 13.05.2019 02:30

попробуй это :

str_replace('this car','<u>this <b>car</b></u>',$line)

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