Str_replace значение, которое начинается с x и заканчивается x

я хочу использовать функцию str_replace для изменения многих значений, подобных этому;

<p><a href = "gogole.com">gogole</a>a ramdom text</p>

к

<p>a ramdom text</p>

или снова

<p><a style = "color:red;" href = "stackoverflow.com">stackoverflow</a>a ramdom text</p>

к

<p>a ramdom text</p>

так как я могу это сделать? Благодарность

Что пробовали?

executable 04.01.2019 15:32

Я пытался искать и понятия не имею, возможно ли это

El virtuos 04.01.2019 15:34

Вы ищете что-то подобное? sandbox.onlinephpfunctions.com/code/…

executable 04.01.2019 15:35
Стоит ли изучать 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 и хотите разрабатывать...
2
3
107
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

$string = '<p><a href = "gogole.com">gogole</a>a ramdom text</p>';
$stripped = preg_replace("/<a .*?</a>/", "", $string);

но регулярные выражения могут быть непростыми, поэтому будьте осторожны.

Редактировать: фиксированное выражение, как предложено в комментариях. Другой возможностью может быть /<a [^<]*</a>/.

Это не очень хорошо работает для <p><a href = "1">first link</a>a ramdom text<a href = "1">more links</a></p>. Возможно <a .*?</a>

Nigel Ren 04.01.2019 15:42

Я только что понял то же самое, хороший улов, спасибо! Буду редактировать.

Dominic 04.01.2019 15:45

Вы можете получить позицию в начале, например:

$start = strpos($myString, "<a ");

и конец вроде:

$end = strpos($myString, "</a>" + 4);

а потом:

$myNewString = substr($myString, 0, $start).substr($myString, $end);

Конечно, вам нужно будет следить за крайними случаями, такими как <a> или </a>, не входящие в строку, или строка заканчивается на </a>.

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