我正在使用以下内容从textarea向我的mysql数据库提交帖子,以便在输出上保留单/双/三行间距。:
$update = nl2br(htmlentities($string, ENT_QUOTES, 'UTF-8'));
有时它可以工作,但有时候double会被一个行空格所取代,而其他时候会保留双行空格。这是我的输出,所有这些都是使用双线空格输入(按两次输入)。关于如何改进这一点的任何建议将不胜感激:
something
went
a
little
wrong
there
感谢Prinzhorn。下面是相关表的CREATE TABLE语句。
CREATE TABLE IF NOT EXISTS `ticket_updates` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ticket_id` varchar(100) NOT NULL, `update` text NOT NULL, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `member_id` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
答案 0 :(得分:0)
如果你使用htmlentities(),它会将“\ n”编码为“%5Cn”。因此,获得实际输出可能会产生问题。
尝试以下代码,可能会帮助您找到所需的实际输出。
echo htmlentities($string, ENT_QUOTES, 'UTF-8');
答案 1 :(得分:0)
我的问题是由于使用wordwrap()
尝试格式化输出引起的,而不是由于:
nl2br(htmlentities($string, ENT_QUOTES, 'UTF-8'));
我将wordwrap($update, 50, " \n", true)
更改为CSS3属性word-break:break-all;
(word-break:break-word;
无法与IE9一起使用)