Обтекание текста при входе из базы данных MySQL, не раньше

У меня есть проблема, связанная с разрывом строки в импортированном тексте, ранее вставленном в mySql с использованием классического метода php — html form.

Проблема в следующем. Я хочу загрузить текст, сохраненный в базе данных mySql, в раздел «Новости» на моей веб-странице. Дело в том, что у моей веб-страницы есть версия для ПК и мобильная версия, каждая из которых имеет разную ширину. Поэтому я не хочу вставлять разрывы строк, когда я отправляю текст в mySql (Я имею в виду разрывы строк, которые будет отправлять форма, если ширина строки текста превышает гипотетическую ширину «cols», предполагая, что я сделаю «физическую» или «жесткую» переноску; вставленные вручную разрывы строк для разделения параграфов, которые я, конечно, хочу сохранить), потому что, насколько я знаю, вы должны указать «cols», который является параметром, который сообщит ширину строк перед выполнением переносов строк. Это не интересно, потому что текстовые поля в моих «новостных» разделах будут иметь разную ширину, как я уже говорил вам, поэтому импорт текста с разрывами строк из mySql не отрегулирует два разных размера «новостей» в моей сети.

Мне нужно загрузить текст в mySql без разрывов строк, а затем разрешить двум разделам «новости» в моей сети форматировать текст.

Я думаю, что это будет легко, так как я просто анализирую сохраненный текст в базе данных mySql в <div> тег с указанной шириной. Но дело в том, что текст переполняет <div> ширина контейнера каждый раз.

Это то, что я использую в качестве ввода текста в HTML-форме:

<textarea name="STORY" wrap="physical">EXAMPLE</textarea>

Чтобы добавить новости в mySql, я использую типичный php:

$var = "INSERT INTO exampleTable ('story') VALUE ($_POST['STORY']);

Чтобы загрузить сохраненный текст, я просто отображаю значение переменной, которая импортирует текст из поля истории базы данных mysql между тегами div:

echo "<div>".$story."</div>";

Как вы можете видеть, поскольку я не хочу использовать «жесткую» перенос, когда вставляю текст из from в mySql, чтобы избежать вставки разрывов строк в строках, которые в противном случае превысили бы ширину «cols», я используйте «физическую» перенос, но я не указываю «cols», поэтому я думаю, что это должно препятствовать тому, чтобы форма вставляла разрывы строк, отличные от тех, которые я делаю вручную (нажимая клавишу «ввод»).

Но полученный текст, когда я его повторю, переполнит мой div ширина, как я уже говорил вам.

Не должен div ширина обернуть текст внутри себя?

Должен ли я удалить атрибут wrap = «physhical» из формы?

Любое предложение?

0

Решение

Во-первых, обратите внимание, что вставка в базу данных, скорее всего, небезопасна и, вероятно, приведет к SQL-инъекциям.

Чтобы удалить каждый перевод строки, вы можете сделать что-то вроде этого:

echo "<div>".str_replace("\n", "", $story)."</div>";
1

Другие решения

Вы можете попробовать обработать это в самом MySQL, используя TRIM() функция:

INSERT INTO exampleTable ('story') VALUE TRIM(TRAILING '\n' FROM $_POST['STORY'])
0

Вы не должны вставлять разрывы строк самостоятельно — CSS может сделать это за вас. Вот это SO ответ, который, кажется, делает все, что вы можете сделать.

0
По вопросам рекламы [email protected]