php如何实现把多平台文件中所有的行合成一行?
一、总结
1、str_replace中的数组替换:str_replace(array("/r","/n","/r/n"),"",$string);
2、preg_replace
正则表达式替换:$str = preg_replace('//s*/', '', $str);
3、用PHP_EOL替换:$str = str_replace(PHP_EOL, '', $str);
二、php换行符表示的几种方式
一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的。
本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r
因此unix系列用 /n
windows系列用 /r/n
mac用 /r
这样就用你写的程序在不同的平台上运行有着不少的麻烦
比如有的程序要把文件中的所有行都合成一行,这有不同的实现方式,
第一种方式:str_replace中的数组替换
str_replace(array("/r","/n","/r/n"),"",$string);
第二种方式:preg_replace
正则表达式替换
$str = preg_replace('//s*/', '', $str);
第三种方式:用PHP_EOL替换
这里不得不重新看一下php那些已经定义好的变量
PHP_EOL就是其中的一个,代表php的换行符,这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r
$str = str_replace(PHP_EOL, '', $str);
三、测试题-简答题
1、php下的换行符预定义变量怎么写?
解答:PHP_EOL
2、unix系列的换行符是什么?
解答:/n 和c语言一样
3、windows系列的换行符是什么?
解答:/r/n 连在一起的,而不是两个
4、mac系列的换行符是什么?
解答: /r
5、PHP_EOL有什么用?
解答:PHP_EOL是php那些已经定义好的变量,它的值会根据平台而变,变成不同平台下的换行符,在windows下会是/r/n,在linux下是/n,在mac下是/r。