我是这样做的:
$string = preg_replace("/[^\r\n]\s+([\r\n$])/", "\\1", $string);
不过连空行也删掉了!

解决方案 »

  1.   

    错了,是这样:
    $string = preg_replace("/\s+([\r\n$])/", "\\1", $string);
      

  2.   

    $string = preg_replace("/\s+([\r\n]|$)/", "\\1", $string);
    上一句与这一句有什么区别!为什么这一句能将程序最后的空格删掉而上一句就不能呢?
      

  3.   

    to:wangxiangjun_sun() 
    不愧是高手连这你也能看出来,还看出了什么?
      

  4.   

    $string = preg_replace("/\s+([\r\n$])/", "\\1", $string);
    when "$" is inside [], it does not represent the end of string
      

  5.   

    $string = preg_replace("/\s+([\x20]|$)/", "\\1", $string);
      

  6.   

    $string = preg_replace("/\x20+([\r\n]|$)/", "\\1", $string);
      

  7.   

    to:manyou(他山之石),zjj2002(阿俊)
    实验成功!
      

  8.   

    $string = preg_replace('/([\r\n])[\s]+/', '\\1', $string);
      

  9.   

    to:phpteam(好无聊) 
    不行啊!