我正在尝试开发一个应用程序问题论坛,用户可以在其中提交答案。但我已经陷入了一个地方,
我有一个textarea接受用户输入,用户可以输入他们想要的任何内容,包括html标签,脚本标签,php标签。并将其存储在数据库中。之后,当我获取数据时,我在标签内显示它。
<div><?php echo $answere;?></div>
我的问题是,当用户在answer textarea中写入<?php ?> tag or <script>
标签时,它会在数据库中正确保存,但它没有显示任何内容。
当我在textarea中获取并包装我的数据库保存的答案时,它显示正确的结果。
示例:
如果有人在回答textarea
中写下文字<?php
// SOME CODE
?>
结果
在div里面它没有显示任何内容。
在textarea区域内,它显示出正确的结果。
注意:我没有使用htmlentities(),html_entity_decode()
有人能指出我的方向吗?任何帮助将不胜感激。
答案 0 :(得分:6)
答案 1 :(得分:2)
您可以使用PHP的原生highlight_string
:
echo highlight_string($code);
有关详细信息,请查看此处的文档:http://fi.php.net/manual/en/function.highlight-string.php
对于JavaScript,您需要找到一个用于突出显示代码的插件,但如果您只想显示未突出显示的代码,则可以使用htmlspecialchars()
。
PHP的一个这样的插件是GeSHi,除了JavaScript之外还支持不同的语言。