我想做的是将HTML代码存储在MySQL表中,并在文本区中显示原始代码。不幸的是,存储的HTML弄乱了页面HTML。我之所以没有使用strip_tags和htmlentities这样的方法,是因为我需要打印实际的标签和符号。所讨论的数据包含bb代码,可能如下所示:
[pre]
<!--HTML CODE GOES HERE-->
[/pre]
我有一个类,方便地将bb标签转换为实际的html代码,当直接在页面上显示时,它的工作效果惊人。一旦将[pre]
标签转换为<pre>
标签,显示代码就不是问题了。当在input/textarea元素中显示这些数据时,就会出现这样的问题:
<textarea>
[pre]
<form></form>
[/pre]
</textarea>
如果我尝试使用htmlentities,我所有的标签将是html代码,使编辑更困难,更不直观的用户。我想结果应该是这样的:
<textarea>
[pre]
...
[/pre]
</textarea>
给定这个算法:
从用户
获取数据使用PDO方式存储在MySQL中
检索数据显示在任何地方
以某种方式处理此输出,使结果看起来像这样:
& lt;textarea>(前)& lt;形式> & lt;/>形式[/pre]& lt;/textarea>
有可能吗?
更新:使用内容可编辑的div正是我所需要的!关于这个解决方案,我唯一的问题是如何保留换行符?当数据第一次创建时,用户在一个文本区中输入,该文本区在提交时保留数据库中的换行符。使用可编辑的div输出这些内容似乎可以删除它们,这对用户来说也不是那么直观。谢谢!
$htmlcontent = preg_replace('/[pre]/i', '[pre];', $htmlcontent);
$htmlcontent = preg_replace('/[/pre]/i', '[/pre];', $htmlcontent);
所以令人沮丧的是,它不会在评论中断行:/(我需要学习如何lol,我是新的stackoverflow)
为什么不使用htmlentities + regex将所有[pre]
和[/pre]
替换回它们的原始形式?