我应该使用 nl2br(htmlspecialchars($text)) 来回显/打印到屏幕的所有内容


Should I be using nl2br(htmlspecialchars($text)) for everything I echo/print to screen?

标题有点说明了一切。我应该使用 nl2br(htmlspecialchars($text)) 来回显/打印到屏幕的所有内容吗?

我一直在环顾四周,似乎这个词是在处理来自用户的输入时,通过转义并将其插入数据库来清理它。然后,从数据库中检索时,如果我打算将其吐到屏幕上,我应该使用 htmlspecialchars() 将不友好的字符转换为它们的安全等价物,如果我想将换行符转换为换行符,则应使用 nl2br() ?

我是否应该只创建一个名为safeEcho()的新函数,该函数可以echo nl2br(htmlspecialchars($text))并在任何地方使用它,我可能必须输出可能来自用户的东西,而不是通常的echo/print语句?

不,为了安全地保存在数据库中,您只需要这个:(转义单引号/双引号等)

mysql_real_escape_string($thedata);

从数据库读取时,不要做任何事情;许多转换没有任何好处。

NL2BR只是取"'"并产生一个<br '>;当然不需要打印。