|
|
|
| Здравствуйте.
При проведении преобразования doc->html получился код, захламлённый пустыми тегами, и тегами c br внутри.Например:
<P><FONT face=Verdana><BR></FONT><BR></P>
<P></P>
|
Вопрос можно ли как-нибудь избавится от этого с помощью регулярных выражений?
Т.Е. задача: удалить все ПУСТЫЕ теги или ТЕГИ внутри которых находится только <BR>
За квант берётся параграф, т.е. структура, ограниченная <P></P>. Внутри него и надо проводить чистку. | |
|
|
|
|
|
|
|
для: axxil
(25.10.2005 в 09:47)
| | Хм... а если просто str_replace() заменить? Или не везде срабатывает?
<?php
$text = str_replace("<P></P>", "", $text);
$text = str_replace("<P><BR></P>", "", $text);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.10.2005 в 14:06)
| | Вот именно что <BR> может быть между двумя ЛЮБЫМИ парными тегами.
И задача в том что если кроме <BR> между ними больше ничего нет (либо вообще ничего, кроме пробелов нет), тогда необходимо снести такую конструкцию нафиг.
Короче обычная чистка кода... По-моему такие скрипты даже существуют, которые вычищают Дримвиверовские "Авгиевы конюшни". А тут попроще будет, наверное :) | |
|
|
|
|
|
|
|
для: Axxil
(25.10.2005 в 17:26)
| | Т.е. надо вырезать только <br> а всё остальное оставить? | |
|
|
|
|
|
|
|
для: cheops
(25.10.2005 в 18:09)
| | Да нет... надо вырезать все парные пустые теги и все парные теги внутри которых только <br> | |
|
|
|
|
|
|
|
для: Axxil
(26.10.2005 в 09:23)
| | Попробуйте следующий скрипт
<?php
$pattern = "|<[^>]+>[\s]*<br>[\s]*<[^>]+>|";
$text = preg_replace($pattern, "", $text);
$pattern = "|<[^>]+>[\s]*<[^>]+>|";
$text = preg_replace($pattern, "", $text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.10.2005 в 09:33)
| | Я вот так переделал. Потому что <br> может быть несколько. Правильно?
<?
$pattern = "|<[^{>,/}]*>[\s]*[<br>]*[\s]*</[^>]*>|";
$text = preg_replace($pattern, "", $text);
$pattern = "|<[^{>,/}]*>[\s]*</[^>]*>|";
$text = preg_replace($pattern, "", $text);
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(26.10.2005 в 13:59)
| | Ммм... дело в том, что всё что заключается в квадратные скобки интерпретируется как один символ... но вообще в описанном контексте это может сработать, так как вряд ли текст между какими либо тэгами будет состоять из <, b, r и > и это будет не <br>. | |
|
|
|
|
|
|
|
для: cheops
(26.10.2005 в 20:34)
| | Спасибо большое!
На самом деле всё работает. | |
|
|
|