У меня есть проблема, связанная с разрывом строки в импортированном тексте, ранее вставленном в 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» из формы?
Любое предложение?
Во-первых, обратите внимание, что вставка в базу данных, скорее всего, небезопасна и, вероятно, приведет к SQL-инъекциям.
Чтобы удалить каждый перевод строки, вы можете сделать что-то вроде этого:
echo "<div>".str_replace("\n", "", $story)."</div>";
Вы можете попробовать обработать это в самом MySQL, используя TRIM()
функция:
INSERT INTO exampleTable ('story') VALUE TRIM(TRAILING '\n' FROM $_POST['STORY'])
Вы не должны вставлять разрывы строк самостоятельно — CSS может сделать это за вас. Вот это SO ответ, который, кажется, делает все, что вы можете сделать.