我在这里谈论(特别是)论坛 - [PHP]code here[/PHP] - style。一些论坛会转义双引号或其他“危险字符”,而另一些则不会。
最好的方法是什么?你们都在用什么?能做到不用担心代码注入吗?
编辑:谁说过要重新发明轮子?
当 PHPecho
或print
文本时,它从不执行它。这只发生在eval
. 这意味着如果您这样做:
echo '<?php ... ?>';
它将传递到页面输出,而不是被解析或执行。
这意味着您需要做的就是转义通常的字符(<
、>
、&
等),并且您通常应该是安全的。
不要重新发明轮子。我在你的问题中看到了 BBCode。获取一个降价库并使用它。所以使用这个:http ://daringfireball.net/projects/markdown/
<
>
括号通常被转义,原因很明显。如果您在某些页面上看到转义引号,那很可能是因为他们的脚本两次转义了它们(例如,magic_quotes 做了一次,然后 mysql_query() 又做了一次)。正确完成数据清理后,您不应在输出中看到转义字符。