Xpoint
   [напомнить пароль]

Преобразование цитат из HTML в plain text и обратно

Метки: [без меток]
[удл]
2004-05-20 20:24:52 [обр] Дмитрий Росляков(2/177)[досье]

Есть:

Еcть HTML-документ. Длинный.
Внутри него могут встречаться цитаты.
<blockquote>Некий цитируемый
текст. Его нужно преобразовать в аналогичный
цитируемый текст, но без HTML</blockquote>
Дальше снова текст.

Хочется получить:

Еcть HTML-документ. Длинный.
Внутри него могут встречаться цитаты.

> Некий цитируемый
> текст. Его нужно преобразовать в аналогичный
> цитируемый текст, но без HTML

Дальше снова текст.

И преобразование в обратную строну тоже хочется иметь.

Можно ли это сделать как-нибудь красиво с помощью регэкспов, чтоб сразу весь текст отпарсить, а не анализировать в цикле по строкам?

спустя 16 часов [обр] Алексей В. Иванов(17/2861)[досье]
Красиво сейчас написать не могу, но рабочий вариант где-то такой:
$content =~ s/<blockquote[^>]*>(.*?)<\/blockquote>/$tmp=$1;$tmp=~s(^)(> )smg;"\n$tmp\n"/egs;
спустя 1 час 41 минуту [обр] Алексей В. Иванов(17/2861)[досье]
Обратно немного сложнее:
$content =~ s/^(\n?(> [^\n]*\n?)+)/$tmp=$1;$tmp=~s(^> )()gms;"<blockquote>$tmp<\/blockquote>"/smge;
спустя 3 дня [обр] Закиров Руслан(12/343)[досье]

http://search.cpan.org/~simon/Text-Quoted/
Поддерживает:

  1. Вложенное квотирование.
  2. Квотирование с инициалами.
  3. Различные символы квотирования
  4. ведущие пробелы

Не поддерживает квотирование с использованием заголовков аля "Original message was..." и форвардинг писем в таком же стиле.

спустя 5 часов [обр] Дмитрий Росляков(2/177)[досье]
Спасибо всем.
Powered by POEM™ Engine Copyright © 2002-2005