оптимизация кода замены или иное решение проблемы

aetern

Новичок
оптимизация кода замены или иное решение проблемы

Дело в том, что в БД MySQL лежит текст с тегами <br />. Этот текст выводится с функцией substring(text,1,50) as text, однако иногда 50-тый символ "режет" тег <br /> и получается ошибка.
Вопрос:
как убрать зарезанный тег <br /> (т.е. '<', '<b', '<br', '<br ', в том числе и сам '<br />'

Вариант типа:
PHP:
$text = str_replace('<br />', '', $text);
$text = str_replace('<br /', '', $text); 
$text = str_replace('<br ', '', $text);
$text = str_replace('<br', '', $text); 
$text = str_replace('<b', '', $text);  
$text = str_replace('<', '', $text);
Не интересен.

Предполагаю, что есть решение путем регулярных выражений, но уж болно плохо в них разбираюсь.
А может еще как-то это можно решить?
 

Dl

Новичок
Иное решение - хранить не теги, а нормальные переводы строк
 

aetern

Новичок
Они такие заносятся сами из формы (textarea) через обработку nl2br.

А нормальные переводы строк - это какие?
 

Dl

Новичок
nl2br надо делать при выводе, а не при записи в базу.
 

Фанат

oncle terrible
Команда форума
Что значит САМИ? Сами к тебе в скрипт залезли, и написали тебе в нем nl2br?
 

aetern

Новичок
Автор оригинала: Dl
nl2br надо делать при выводе, а не при записи в базу.
Логично. Попробую. Как-то об этом не подумал.

-~{}~ 09.01.09 17:19:

Да.... Дурная голова рукам покоя не дает.

А что же делать со внесенными данными. Неужто лезть в БД и все теги удалять?

Пожалуй буду обрабатывать str_replace-ом, а может еще что-то можно сделать?
 

cDLEON

Онанист РНРСlub
Можно - в базе записи сформированные старым способом, переделать под новый - вместо <br/> засунуть символ переноса строки.
 

aetern

Новичок
Не совсем понял, что значит: "вместо <br/> засунуть символ переноса строки."
 

Beavis

Banned
aetern
ещё можно сделать дамп таблицы в текстовый файл, заменить в нём <br> на перенос строки и засунуть обратно
 

Фанат

oncle terrible
Команда форума
это слишком.
но дамп перед заменами сделать стоит
 

aetern

Новичок
Всем спасибо.
Особо не морочился. Поступил как предлагал Beavis. Поработал с частью дампа где хранился текст.
 
Сверху