【发布时间】:2016-03-18 09:37:54
【问题描述】:
我遇到了与导入文本的换行有关的问题,该文本之前使用经典的 PHP - HTML 表单方法插入 MySQL。
问题如下。我想将保存在 MySQL 数据库中的文本加载到我网页的“新闻”部分。问题是我的网页有一个PC版和一个手机版,每个都有不同的宽度。
所以,当我将文本提交到 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']);
为了加载保存的文本,我只是在 div 标签之间回显了一个从 MySQL 数据库的故事字段中导入文本的变量的值:
echo "<div>".$story."</div>";
如您所见,因为我不想在 MySQL 中从 from 插入文本时使用“硬”换行,以避免在超出“cols”的行中插入换行符宽度,我使用“物理”换行,但我没有指定“cols”,所以我认为这应该防止表单插入我手动执行的换行符(按“enter”键)。
但是,当我回显它时,生成的文本会溢出我的 div 宽度,正如我之前告诉过你的那样。
div 宽度不应该将文本包裹在自身内部吗?
我应该从表单中删除wrap="physhical" 属性吗?
【问题讨论】:
-
使用
cols不会在提交的数据上神奇地插入换行符。你在说什么换行符? -
嗨哟西。你说的对。我说的是如果提交的文本超过了流行的“cols”宽度,“wrap”属性将插入的换行符。但是,我想保留手动插入的 libe-breaks 以保存段落。
-
这就是我的意思。你不必做任何事情。文本将仅包含手动输入的那些换行符。不考虑 textarea-element 的配置。这意味着,在您的数据库中,您只会有前面提到的换行符。如果您在
<div>或类似名称中显示该文本,它将跨越整个可用宽度。要使有意识的换行符可见,只需在输出文本时使用nl2br。为了回答您添加的问题,是的,无论如何不要在表单上使用任何花哨的属性。
标签: php mysql text line-breaks word-wrap