PHP和Mysql、nl2br和验证错误

PHP和Mysql、nl2br和验证错误,php,mysql,Php,Mysql,我有一个文本区域,允许用户输入文本和标记,并将其保存到exmaple的mysql中: This is some text <table> <tr> <td> blah blah blah </td> </tr> <table> 在每一行(包括标记)的末尾添加一个换行符: This is some text<br/> <table><br/> <tr><

我有一个文本区域,允许用户输入文本和标记,并将其保存到exmaple的mysql中:

This is some text
<table>
<tr>
<td>
   blah
   blah
   blah
</td>
</tr>
<table>
在每一行(包括标记)的末尾添加一个换行符:

This is some text<br/>
<table><br/>
<tr><br/>
<td><br/>
   blah<br/>
   blah<br/>
   blah<br/>
</td><br/>
</tr><br/>
<table><br/>
这是一些文本



废话
废话
废话



显然,由于标记之间的换行,我得到了验证错误,例如:

<tr><br/>
<td><br/>



如果我不使用nl2br,将不会有任何断线。我该怎么办?

在进入nl2br后,您可以尝试删除标记后设置的任何br标记

这一行可能会有帮助

<?php 

$stringToStore = str_replace('><br />', '>', nl2br($originalString));

在您通过nl2br后,您始终可以尝试删除标记后设置的任何br标记

这一行可能会有帮助

<?php 

$stringToStore = str_replace('><br />', '>', nl2br($originalString));

如果HTML在输入中没有
br
,那么它在输出中是否也应该没有
br
?同意@Jite,但为了解决这个问题,也许您可以尝试将其放在pre标记中?pre给出验证错误,因为pre中不允许使用表。除非您的意思是将文本放在pre中,而不是放在表中。如果HTML在输入中没有
br
,那么它在输出时是否也应该没有
br
?同意@Jite,但出于问题的考虑,也许您可以尝试将其放在pre标记中?pre给出验证错误,因为pre中不允许使用表。除非你的意思是把文本放在pre中,而不是放在表中。
<?php

$stringToStore = preg_replace('/(<.*>)<br\s*\\/?>/', '$1', nl2br($originalString));