Есть текст вида:
<a><a><a><a>e</a>d</a>c</a>b</a>
text
нужно из него вырезать все вида <a>.+?</a>, причем рекурсивно, с глубины.
Так чтоб в итоге получилось:
text
а не:
d</a>c</a>b</a>
text
и прочие косяки.
поможет кто?
$text = '<a><a><a><a>e</a>d</a>c</a>b</a>text</a>';
preg_match('/<a>(.*)<\/a>/s', $text, $o);
не то?
Signum, var_dump($o);
array(2) {
[0]=>
string(40) "<a><a><a><a>e</a>d</a>c</a>b</a>text</a>"
[1]=>
string(33) "<a><a><a>e</a>d</a>c</a>b</a>text"
}
Signum,
нужно preg_replace('?????', '', $text);
не то, так вырежет как я говорил, по первый закрывающийся </a>.
Signum, или по последний.
прикол в том, что </a> может быть и внутри text и после него.
Задача - вырезать все теги <a> которым есть пара, рекурсивно
Signum,
<a><a><a></a></a></a>text</a>
vvvvvvvvv
text</a>
<a><a><a><a></a></a></a>text</a>
vvvvvvvvv
<a><a><a></a></a></a>text</a><a></a>
vvvvvvvvv
text</a>
<a><a><a></a></a></a>text<a></a>
vvvvvvvvv
text
<a><a></a></a></a>text</a>
vvvvvvvvv
</a>text</a>