早上好,
这是问题所在:我通过文本编辑器(WYSIWYG/TinyMCE)输入了一些文本,并在其他地方显示为张贴。我们遇到的问题是文本在显示为帖子时会丢失其格式。深入研究代码后,我发现这是通过 strip_tags() + echo preg_replace() 组合完成的。我还是 PHP 新手,但我能够弄清楚:
- strip_tags() 正在取出格式(b/c 这就是它的滚动方式)
- 我可以添加并让粗体和斜体文本显示
- 带下划线和删除线的文本是 CSS 样式,将代码(因为它保存在 db 表中)添加到 strip_tags() 列表并没有解决问题
我的问题是:我可以修改现有代码来解决这个问题,还是应该使用其他东西(也许是 htmlentities() )?
编辑:我尝试了 htmlentities,但失败了。编辑:我只添加了标签,问题解决了 50%。我的文本带有下划线,但它显示的低于后面的非下划线文本。好像带下划线的文本被视为潜台词或其他东西。
代码片段:
<div class="display_text_area">
<?php $text = strip_tags(str_ireplace("</p>", "</p><br/>",
$text_detail->description),
'<font><ul><li><br/><strong><em><span style="text-decoration: underline;">'); ?>
<?php echo preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $text); ?>
</div>
我把标签留在这里是为了表明(a)我试过了,(b)它没有用。所以 (c) 我知道它需要删除或修改。
提前谢谢了。