保留通过PHP输入用户的输入

Léo*_* 준영 0 php postgresql newline enter

如何保存用户在数据库中给出的"输入"并将其显示给其他用户?

我存储用户的问题并使用以下函数分别清理用户数据,准备和执行SQL命令.

 pg_escape_string
 pg_prepare
 pg_execute
Run Code Online (Sandbox Code Playgroud)

我用htmlentitiesENT_QUOTES将数据转换成HTML.此过程将删除所有输入,显然是在问题中以\n的形式.

我希望有一个类似的问题系统,如SO:显示只有双重进入用户作为换行符.

Joh*_*ica 7

打电话后htmlentities(),打电话nl2br().Web浏览器忽略纯字符换行符,因此您需要将它们转换为<br />元素以使其显示.

nl2br - 在字符串中的所有换行符之前插入HTML换行符

描述

string nl2br ( string $string [, bool $is_xhtml= true ] )
在所有换行符之前 返回字符串<br /><br>插入.

例如:

echo nl2br(htmlentities($input));
Run Code Online (Sandbox Code Playgroud)

要仅显示双换行并忽略单换行,您可以改为使用更复杂的字符串替换函数preg_replace:

echo preg_replace('/\n\s*\n/', "<br />\n<br />\n", htmlentities($input));
Run Code Online (Sandbox Code Playgroud)

这里'/\n\s*\n/'匹配换行符,后跟任意数量的空格,后跟另一个换行符.它用两个<br />元素替换任何这样的子串.单个换行符将被忽略.它也很好,因为它会忽略不可见的无关空格和标签,例如,如果用户输入了以下内容:

这是一个段落.\n
它很短.\n
<space><tab>\n
这是另一段.\n
它也很短.