从MySQL数据库导入时如何包装文本,而不是之前?

问题描述 投票:0回答:3

我有一个与导入文本的换行相关的问题,以前使用经典的PHP-HTML表单方法插入到MySQL中。

问题如下。我想将保存在MySQL数据库中的文本加载到我的网页的“新闻”部分。问题是我的网页有PC版和移动版,每个版本都有不同的宽度。

因此,当我将文本提交给MySQL时,我不想插入换行符(我的意思是如果文本行宽度超过了一个hipotethical“cols”宽度,表单将提交换行符,假设我做了一个“physhical”或“硬”换行;手动插入换行符以分隔我想要保留的段落)因为据我所知,你必须指定“cols”,这是一个告诉行宽的参数在做换行之前。

这不是很有趣,因为我的“新闻”部分的文本字段将具有不同的宽度,正如我告诉你的那样,因此从MySQL导入带有换行符的文本将不会调整我网络中的两个不同的“新闻”大小。

我需要的是将文本上传到没有换行符的MySQL,然后让我网页上的两个“新闻”部分进行文本格式化。

我虽然这很容易,因为我只是将MySQL数据库中保存的文本解析为具有指定宽度的<div>标记。但问题是文本每次溢出<div>容器宽度。

这就是我用作HTML表单中的文本输入:

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

要在MySQL中注入新闻,我使用典型的PHP:

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

要加载保存的文本,我只是回显一个变量的值,该变量从div标记之间的MySQL数据库的story字段导入文本:

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

正如你所看到的,因为当我从MySQL中插入文本时我不想使用“硬”包装以避免在行中插入换行符,否则会超出“cols”宽度,我使用“phisycal”换行,但我没有指定“cols”,所以我认为这应该防止表单插入换行符,而不是我手动换行(假设“输入”键)。

但是,当我回应它时,由此产生的文本将溢出我的div宽度,正如我之前告诉过你的那样。

不应该div宽度包裹文本内部?

我应该从表单中删除wrap="physhical"属性吗?

php mysql text line-breaks textwrapping
3个回答
1
投票

首先,请注意,您插入数据库很可能是不安全的,并且可能会导致SQL注入。

要删除每个换行符,您可以执行以下操作:

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

0
投票

您可以尝试使用TRIM()函数在MySQL中处理此问题:

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

0
投票

你不应该自己插入换行符 - CSS可以为你做这个。 Here是一个SO答案,似乎可以做你想做的一切。

© www.soinside.com 2019 - 2024. All rights reserved.