В моем коде я получаю строку, которая есть HTML-теги, как так:Удаление избытка «>» в строке в PHP
$string = '<div style="width:100px;">ABC 1234 <span> Test string, testing this string</span></div>';
Теперь я удалил атрибут стиля из указанной строки с помощью preg_replace:
$string = preg_replace('/(<[^>]+) style=".*?"/i', '', $string);
После удаления тега стиля мне удалось удалить атрибут стиля, поэтому тег div оказался похож на <div>
. Проблема, я столкнулся после того, как сделать это, что я теперь получить избыток >
после закрытия тега для диапазона, так что строка будет выглядеть так:
$string = '<div>ABC 1234 <span> Test string, testing this string</span> > </div>';
Мой вопрос, почему я вдруг получаю exccess >
? Есть ли другое регулярное выражение, которое я могу использовать, которое избавится от атрибута стиля без появления дополнительных >
? Или я могу как-то справиться с этим?
Я попытался с помощью str_replace в два раза, так как:
$string = str_replace("\n", "", $string);
$string = str_replace(">>", ">", $string);
Но это не сработало.
Я не пытаюсь удалить теги HTML, только часть стиля.
[Избегайте обработки HTML с регулярным выражением] (http://stackoverflow.com/a/3577662/19068) – Quentin
ваша строка неправильно, вы должны использовать что-то вроде this '$ string = '
Каков ваш полный код замены? а не просто регулярное выражение. – SmokeyPHP