SQL-запрос для преобразования символа новой строки в HTML <br> - PullRequest
7 голосов
/ 24 августа 2011

У меня есть база данных mysql статей, которые были введены в текстовую область без форматирования, они используют только символ новой строки для разрывов строк

\n

Мне нужно преобразовать все это в HTML-теги br

<br />

Можете ли вы помочь мне написать запрос для этого, который я могу запустить в phpmyadmin, который сделает это?

название таблицы

exp_channel_data

в качестве дополнительного вопроса ...

Могу ли я выполнить запрос, который уберет все из середины тегов p и span

Я хочу избавиться от всего этого

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
<span face="Times New Roman">

и в итоге получим

<p>
<span>

Ответы [ 3 ]

20 голосов
/ 24 августа 2011

Первый вопрос:

UPDATE exp_channel_data SET text_column = REPLACE(text_column, '\r\n', '<br />')

Если это ничего не заменит, используйте '\n' вместо '\r\n'.

Второй вопрос:

Вы не можете сделать это с помощью запроса SQL, вам нужно извлечь эти данные в скрипт PHP или что-нибудь еще, что вам нравится, и выполнить замену регулярного выражения (пример для PHP):

$new_str = preg_replace('#<(p|span)[^>]+>#', '<$1>', $old_string);
6 голосов
/ 24 августа 2011
UPDATE yourTable SET text=REPLACE(text,"\n","<br />")

Это работает для вашего первого вопроса.

1 голос
/ 24 августа 2011

Поскольку вы используете ExpressionEngine, вы можете просто изменить формат каждого поля на XHTML. Это добавит разметку <br /> при отображении на внешнем интерфейсе. Держите пари, чтобы сохранить ваши данные в чистоте и оставить форматирование анализатору, который их отображает.

...