я хочу использовать функцию 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>
так как я могу это сделать? Благодарность
Я пытался искать и понятия не имею, возможно ли это
Вы ищете что-то подобное? sandbox.onlinephpfunctions.com/code/…






Поскольку строка, которую вы хотите заменить, не является полностью предсказуемой, вам нужно использовать регулярное выражение. Вот быстрый и грязный вариант для этого случая с использованием 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>
Я только что понял то же самое, хороший улов, спасибо! Буду редактировать.
Вы можете получить позицию в начале, например:
$start = strpos($myString, "<a ");
и конец вроде:
$end = strpos($myString, "</a>" + 4);
а потом:
$myNewString = substr($myString, 0, $start).substr($myString, $end);
Конечно, вам нужно будет следить за крайними случаями, такими как <a> или </a>, не входящие в строку, или строка заканчивается на </a>.
Что пробовали?