你怎么能保持“进”通过在数据库中的用户给定的,并告诉他们,然后向其他用户?

余存储用户的问题,并用下面的函数来净化所述用户数据,准备它,并执行SQL命令,分别

 pg_escape_string
 pg_prepare
 pg_execute

我用htmlentitiesENT_QUOTES到数据HTML转换。 此过程会删除所有进入时,显然是在形式\ N,在问题。

我想有一个类似的问题的系统,如SO:仅显示双进入到用户以换行

有帮助吗?

解决方案

在你打电话htmlentities(),叫nl2br()。所以你需要将它们转换为<br />元素,使它们显示出来的网页浏览器会忽略普通换行符。

  

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

     

描述

     

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

例如:

echo nl2br(htmlentities($input));

要只显示双换行,并忽略那些单身,你也可以使用更复杂的字符串替换功能, preg_replace

echo preg_replace('/\n\s*\n/', "<br />\n<br />\n", htmlentities($input));

下面'/\n\s*\n/'匹配换行,随后由空格的任何量,紧接着又换行。它取代任何这种子有两个<br />元素。单换行被忽略。这也是不错的,因为它会忽略多余的空格和制表符是不可见的,例如,如果用户键入此:

  

这是一个paragraph.\n结果   这是很short.\n结果   <space><tab>\n结果   这里的另一个paragraph.\n结果   它也很短。

其他提示

PHP的nl2br()函数应该做的伎俩,让你转换\ n个字符到<br> HTML标签。

要启用“二进一换行”的行为,你应该运行正则表达式来把每对连续<br>标记成一个单一的<br>标签(你也可以用\ n个字符做到这一点的运行nl2br()之前文本)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top