写过代码的应该都知道,小小的换行符在 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);
//2、使用正则替换
$str = preg_replace('//s*/', '', $str);
//3、使用php定义好的变量 (建议使用)
$str = str_replace(PHP_EOL, '', $str);
PHP_EOL是一个些已经定义好的常量,代表php的换行符,这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r。
我们也可以把不同行的内容放到一个数组中:
$lists = explode(PHP_EOL, $content);