如何删除PHP中的额外换行符

时间:2013-07-08 17:25:00

标签: php regex string newline

我有一个页面可以将条目添加到几年前创建的日志中。但是,在本页的评论部分中,每次按Enter键都会添加一行。

例如,如果我输入此内容并将其添加到日志中:

TEST 1                                        
TEST 2        
TEST 3

它会显示为:

TEST 1

TEST 2

TEST 3

我在大型php文件中找到了评论部分,并想知道如何编辑它以删除此问题?任何帮助将不胜感激。感谢。

PHP代码:

  <tr><td colspan='3'>&nbsp;</td></tr>
  <tr><td class="master-menu"><div class='mar'>*Comments:</div><TEXTAREA rows='5' cols='30' NAME='notes' onkeypress="return beta (event,letters+numbers+signs+custom)"><?php echo $notes; ?></textarea></div>

PHP代码出现$ NOTES:

   echo “<input name =’defaultcomm’ type =’hidden’  value =’$notes’>”;
   $headnotes = $notes;
   $notes = str_replace(“\\”,””,$getrow[‘Notes’]);
   $notes = str_replace(“'”,”’”,$notes);
   $notes = ereg_replace(“[\n\r]+”,”\n”,$notes);

2 个答案:

答案 0 :(得分:2)

$notes = ereg_replace(“[\n\r]+”,”\n”,$notes);

这行代码创建了两个换行符,因为你用/ n替换/ n和/ r,你打印的行最后可能各有一行。导致你的双重换行

ereg_replace现已根据documentation弃用,您可以尝试str_replace("\s\s", "\n", $notes)

编辑最终答案是:

$notes = trim(preg_replace('/\r\r+/', '<br>', $sqlresult['Notes']));

答案 1 :(得分:0)

开始这个答案,因为其他信息没有用完。

我想知道这是否与那里的windows样式引号有关。尝试复制并粘贴以下代码,代替看起来相同的现有代码:

echo "<input name ='defaultcomm' type ='hidden'  value ='$notes'>";
$headnotes = $notes;
$notes = str_replace("\\","",$getrow['Notes']);
$notes = str_replace("'","'",$notes);
$notes = ereg_replace("[\n\r]+","\n",$notes);

然后让我知道你是否得到了相同的东西,或者是一个新的错误。