PHP: нарушение HTML-разметки при получении первых 200 символов - PullRequest
0 голосов
/ 29 июля 2010

в моем веб-приложении на PHP у меня есть форма ввода данных, где пользователи будут вводить данные с помощью текстового редактора (я использую FCKEditor) и буду сохранять разметку из редактора в таблицу БД. На другой странице мне нужно отобразить первые 200 символов содержимого (с ссылкой «Просмотреть больше» для просмотра всего). Поэтому, когда я беру первые 200 символов, HTM Lmarkup ломается, потому что я могу пропустить закрывающие теги некоторых html-тегов, которые уже начались. Как я могу от этого избавиться? Я знаю, что могу использовать strip_tags для удаления всей разметки HTML. Но я хочу сохранить это как есть. Есть ли что-нибудь, что я могу сделать, чтобы решить эту проблему?

1 Ответ

2 голосов
/ 29 июля 2010

Запустите его через HTMLTidy, так как это может помочь. Например, если у вас есть тег link (a), открытый, но не закрытый, это может помочь избавиться от ссылки «кровоточить» на следующий элемент. У вас по-прежнему будут проблемы, если ваш скрипт вырезает строку из середины тега, как «

Лучшей практикой imgo является обработка «короткой» версии текста отдельно, просто дайте пользователю ввести ее в отдельный текстовый редактор.

...