【发布时间】:2011-09-09 01:09:52
【问题描述】:
如果我这样做:
$comments = str_replace( "\n\n", "\n", $comments );
还有这个:
$comments = explode( "\n", $comments );
那么循环下去,这怎么可能……
if( strlen( $comments[ $i ] ) == 0 )
...可能是真的???
实际上并没有更多的上下文,它非常简单,而且我是一名长期的 PHP 开发人员,这真的让我很难过。
附:我也尝试过类似...
$comments = str_replace( "\n\n\n", "\n", $comments );
$comments = str_replace( "\n\n", "\n", $comments );
$comments = str_replace( "\n\n", "\n", $comments );
...连续,我仍然遇到同样的问题。
【问题讨论】:
-
你的 $cmets 数组的 var_dump() 告诉你关于你的数组的什么?我通常也使用 empty() 而不是 strlen()==0
-
1.检查是否有 BR 而不是 \n; 2.如果是,请先更换它;如果 \n\n 则退出 \r\n 组合,因此请先尝试替换它; 4.您必须使用 REGEX 将连续的 \n\n\n 替换为唯一的 \n
-
替换 \r\n 也不起作用,我只是尝试了 empty() 而不是 strlen() 但这不起作用,有问题!
-
改用
preg_replace:$comments = preg_replace("~\n{2,}~", "\n", $comments);