Нашел на просторах такой вот шаблон
$pattern= "'<[\/\!]*?[^<>]*? >'si";
Более-менее понятно, но непонятна именно эта часть
[\/\!]
-За что именно она отвечает?И еще проблема, не работает для тегов типа
< html>
Те с пробелом между < и самим тегом.
Но это фиг с ним, нужно разобраться с блоком
Спустя 1 минута, 39 секунд (25.01.2012 - 22:11) Winston написал(а):
strip_tags() и никаких регулярок не надо.
Спустя 1 минута, 36 секунд (25.01.2012 - 22:13) Winston написал(а):
Цитата (Эдик @ 25.01.2012 - 21:09) |
[\/\!] |
Это значит, что между символами < > могут встречаться символы / и !
Спустя 36 секунд (25.01.2012 - 22:13) Эдик написал(а):
Winston, мне нужно именно регулярку написать =) Для опыта ну и вообще
Спустя 19 секунд (25.01.2012 - 22:14) Winston написал(а):
$pattern= "'<[/! ]*[^<>]*>'siU";
Спустя 2 минуты, 27 секунд (25.01.2012 - 22:16) Эдик написал(а):
Winston, спасибо, но почему-то в такой строке
Она бессильна для </html> и </br>
Так погоди, а почему там стоит одинарный слеш, а не 2-й? Вроде 2 слеша щаменяются на 1?
$string="< br ></br > < html>< head >OLOLO< / head ></html> < html ></br> 5<<3 и 6>5 fdfgdfgdfgfdgfdg";
Она бессильна для </html> и </br>
Так погоди, а почему там стоит одинарный слеш, а не 2-й? Вроде 2 слеша щаменяются на 1?
Спустя 1 минута, 54 секунды (25.01.2012 - 22:18) Winston написал(а):
$str = '$string="< br ></br > < html>< head >OLOLO< / head ></html> < html ></br> 5<<3 и 6>5 fdfgdfgdfgfdgfdg";';
echo preg_replace('#<[^>]+>#sU', '', $str);
Спустя 6 минут, 4 секунды (25.01.2012 - 22:24) Эдик написал(а):
5<<3 и 6>5
Вот это обрабатывает не так, как надо
Вот это обрабатывает не так, как надо
Спустя 17 минут, 7 секунд (25.01.2012 - 22:41) Winston написал(а):
Цитата (Эдик @ 25.01.2012 - 21:24) |
Вот это обрабатывает не так, как надо |
Вырезать не должен?
Спустя 2 минуты, 9 секунд (25.01.2012 - 22:43) Эдик написал(а):
Ну это типа как больше-меньше, он не должен брать это как тег.
Но вроде я понял, что это невозможно
Но вроде я понял, что это невозможно
Спустя 1 минута, 33 секунды (25.01.2012 - 22:45) killer8080 написал(а):
Эдик
а с чего ты взял что в теге может быть пробел между "<" и названием тега?
а с чего ты взял что в теге может быть пробел между "<" и названием тега?
Спустя 1 минута, 8 секунд (25.01.2012 - 22:46) Эдик написал(а):
killer8080, ну я просто предположил, что так может быть.
я встречал написание тега
я встречал написание тега
< /br>
Спустя 2 минуты, 6 секунд (25.01.2012 - 22:48) killer8080 написал(а):
Цитата (Эдик @ 25.01.2012 - 21:46) |
я встречал написание тега < /br> |
Браузер эту хрень тегом не признает
Спустя 2 минуты, 39 секунд (25.01.2012 - 22:51) Эдик написал(а):
killer8080, блин, точно, а чего я тогда парюсь
Спасибо, вроде понял.
Но все равно открыт вопрос об 5<6 и 4>3
Спасибо, вроде понял.
Но все равно открыт вопрос об 5<6 и 4>3
Спустя 7 минут, 41 секунда (25.01.2012 - 22:58) Лена написал(а):
взяла пример Winston, добавила проверку с "заглядыванием назад":
$str = '<br ></br > < html>< head >OLOLO< / head ></html> < html ></br> 5<<3 и 6>5 fdfgdfgdfgfdgfdg5<<3 и 6>5';
echo preg_replace('#<(?<!<)[^>]+>#sU', '', $str);
Спустя 6 минут, 30 секунд (25.01.2012 - 23:05) Эдик написал(а):
Лена? теряет смысл, он вообще теги не режет, тк ты убрала самую суть поиска тегов.
вот самый норма вариант, который у меня получился
вот самый норма вариант, который у меня получился
$pattern= "'<[\\/!]?[a-z0-9]+>'iU";
Спустя 1 минута, 38 секунд (25.01.2012 - 23:06) Winston написал(а):
Короче изврат
Проще strip_tags
#<+\s*/*\s*([a-z][a-z\d]*)\b[^>]*/*\s*>+#isU
Проще strip_tags
Спустя 5 минут, 16 секунд (25.01.2012 - 23:12) killer8080 написал(а):
ещё один изврат
$t = 'text <a href="#">
link
5<2
</a> text 5<2>4
<h1 class="abc"> header </h1 >
<img src="yy"> afetr picture';
$t = preg_replace('#(?:<([a-z][a-z\d]*)[^>]*>(.*)(</\\1[ ]*>))|(?:<([a-z][a-z\d]*)[^>]*>)#isU', '$2', $t);
echo '<pre>'.htmlspecialchars($t).'</pre>';
Спустя 18 минут, 25 секунд (25.01.2012 - 23:30) Лена написал(а):
не попробовала сначала, теперь попробовала:
$str = '<br ></br > < html>< head >OLOLO< / head ></html> < html ></br> 5<<3 и 6>5 fdfgdfgdfgfdgfdg5<<3 и 6>5';
echo preg_replace('#(?<!<)<[^<>]+>#sU', '', $str);