写过代码的应该都知道,小小的换行符在 Windows/Linux/Mac 下都是不一样的。本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r。这样就会导致你的代码搬到另一个系统下就会出现一些错误。

关于 \n , \r, \t

\n 软回车:在Windows 中表示换行且回到下一行的最开始位置,在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

\r 软空格: 在Linux、unix 中表示返回到当行的最开始位置,在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。

\t 跳格(移至下一列)

它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。 PHP中常用去除换行符的几种方法

  1. 使用str_replace 来替换换行
$str = str_replace(array("/r/n", "/r", "/n"), "", $str); 
  1. 使用正则替换
$str = preg_replace('//s*/', '', $str);
  1. 使用php定义好的变量 (建议使用)
$str = str_replace(PHP_EOL, '', $str);

PHP_EOL是一个些已经定义好的常量,代表php的换行符,这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r

我们也可以把不同行的内容放到一个数组中:

$lists = explode(PHP_EOL, $content);