Загадка: разделение строки HTML правильно

Я пытаюсь разделить строку HTML маркером для создания предварительного просмотра блога, не показывая полное сообщение. Это немного более твердо, чем я сначала думал. Вот проблемы:

  • Пользователь будет создавать HTML через WYSIWYG-редактор (CKEditor). Разметка, как гарантируют, не будет симпатична или последовательна.
  • Маркер, read_more(), может быть помещен куда угодно в строке, включая то, чтобы быть вложенным в теге абзаца.
  • Получающейся первой строкой разделения должен быть допустимый HTML для всего разумного использования маркера.

Примеры возможных применений:

<p>Some text here. read_more()</p>

<p>Some text read more() here.</p>

<p>read_more()</p>

<p>  read_more()</p>

read_more()

До сих пор я попытался просто разделить строку на маркере, но это оставляет недопустимый HTML. Regex является, возможно, другой опцией. Какую стратегию Вы использовали бы, чтобы решить это и сделать ее максимально пуленепробиваемой? Любые фрагменты кода или подсказки также ценились бы (я использую PHP).

5
задан VirtuosiMedia 1 August 2010 в 01:26
поделиться