PHP文件内容比对:排除换行符影响的换行符替换方法汇总
最近处于进行的状态,需要对文件内容进行比对。为了能够排除换行符对文件内容所产生的影响,对 PHP 中替换换行符的几种方法进行了总结。

第一种:使用str_replace 来替换换行
使用数组替换函数 str_replace,将字符串 $str 中的回车换行符(\r\n)、回车符(\r)和换行符(\n)替换为空字符串 "" 。
第二种:使用正则替换
使用 preg_replace 函数,将字符串中的连续空白字符(包括空格、制表符、换行符等)替换为空字符串,即去除字符串中的所有空白字符。
第三种:使用php自定义的常量 (建议使用)
将字符串中的换行符(PHP_EOL)替换为空字符串后,再与原字符串进行拼接。
示例1:
/*
* 获得用户操作系统的换行符 \n
* @access public
* @return string
*/
function get_crlf()
如果在 $_SERVER['HTTP_USER_AGENT'] 中能找到 'Win' 这个字符串
$the_crlf = '\r\n';
如果在 $_SERVER['HTTP_USER_AGENT'] 中能找到 'Mac' 这个字符串
在旧的 Mac OS 系统中,使用 $the_crlf = '\r'; 来表示换行符。
else
$the_crlf = '\n';//权重大一点
return $the_crlf;
使用 get_crlf() 函数获取的内容被替换为空字符串,替换的对象是 $str 中的内容,即将 $str 中的换行符(get_crlf() 返回的内容)去除掉了。
示例二:
$text="aaaa
bbb";
将字符串中的换行符(\n)替换为空字符串,即将换行符去除。具体来说,使用 str_replace 函数,将字符串中的 \n 替换为 "",从而实现去除换行符的效果。
将字符串中的回车符(\r)替换为空字符串。具体来说,就是把变量 $text 中的回车符去除,使 $text 不再包含回车符。
将字符串中的回车换行符(\r\n)替换为空字符串,即将 $text 中的回车换行符去除。
这样处理后$text还是老样子!没有任何改变!!
我们使用的是单引号,php 将“\n”当作字符来处理,而没有将其转义成换行符。
所以修改成以下后,才能得到正确的结果:
将字符串中的换行符(\n)进行替换,替换为空字符串,即将换行符去除。
将字符串中的回车符(\r)进行替换,替换为空字符串,即将字符串中的回车符去除。
将字符串中的回车换行符(\r\n)替换为空字符串。