$c = "a\nb\nc\n";
if(substr($c,-1) == "\n")
  $c = substr($c,0,-1);注意要先判断一下,假如不是呢

解决方案 »

  1.   

    假如不是就不把最后一项给删掉呀?
    用substr可以,我居然没想到:)谢了。
    但是我上面那种方法怎么不对的?如果最后有\n的话数组的最后一项应该也是空项呀。为什么不能被unset呢?
      

  2.   

    使用这种方法还是不行。substr也不能去掉最后那个换行。你看http://diary.soulsky.net/,从第二篇开始的每一行都是两个换行。其中一个是我在循环中加入的<br>,而另一个就是原来的内容自带的了。而第一篇就没有自带的换行。
      

  3.   

    你用nl2br作了处理<br />
    是在什么时候做的?上面代码里没有
      

  4.   

    我想引起的多余换行的不是\n而是\r
    加一个替换 把 "\r\n"换成 "\n"
      

  5.   

    为什么要把\r\n换成\n?这样不还是换行么?
    应该是把\r去掉吧?
      

  6.   

    已经ok。谢谢。尚有不明,即\r\n和\n的区别。and那个\r是如何产生的?
      

  7.   

    我也不太清楚可以直接用chr(13) 用ASCII码来判断吗?
    我以前写过一个函数,就是来替换字符串中某些特定的字符的..
      

  8.   

    \r\n和\n的区别在ascii中 \r:回车 \n:换行这是由文件系统决定的
    linux中只有\n没有\r
    window中两者都有在window下用记事本看linux的文本文件,你会发现在应该换行的地方有一个小黑方块,并不换行。这是记事本需要匹配到\r\n时才换行的原因。