所属栏目:发布日期:2016-12-22 10:07浏览量:2581作者:admin
最近在进行网站开发时,需要进行文件内容比对,为了排除换行符对文件内容的影响,总结了一下PHP中替换换行符的几种方法:
第一种:使用str_replace 来替换换行
$str = str_replace(array("\r\n", "\r", "\n"), "", $str);
第二种:使用正则替换
$str = preg_replace('//s*/', '', $str);
第三种:使用php自定义的常量 (建议使用)
$str = str_replace(PHP_EOL, '', $str).
示例1:
/*
* 获得用户操作系统的换行符 \n
* @access public
* @return string
*/
function get_crlf()
{
if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win'))
{
$the_crlf = '\r\n';
}
elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac'))
{
$the_crlf = '\r'; // for old MAC OS
}
else
{
$the_crlf = '\n';//权重大一点
}
return $the_crlf;
}
$str = str_replace(get_crlf(), "", $str);
示例二:
$text="aaaa
bbb";
$text=str_replace('\n’,"",$text);
$text=str_replace('\r’,"",$text);
$text=str_replace('\r\n’,"",$text);
这样处理后$text还是老样子!没有任何改变!!
因为我们使用是的单引号,php把’\n’当前了字符进行处理,没有进行转义成换行符。
所以修改成以下后,才能得到正确的结果:
$text=str_replace("\n","",$text);
$text=str_replace("\r","",$text);
$text=str_replace("\r\n","",$text);