在PHP中,有时候我们需要对字符串的换行进行过滤,比如天涯PHP博客中文章页面的description信息,我是直接截取的文章内容,并过滤掉html符号,最终还要过滤掉其中的换行。
下面整理一下常见的去除换行的方法及PHP代码。其实天涯[phpha.com]想给大家推荐的是一个系统常量[PHP_EOL]。
// 第1种写法: <?php str_replace("n", '', $str); ?> // 第2种写法: <?php str_replace("rn", '', $str); ?> // 第3种写法: <?php preg_replace("/s/", '', $str); ?>
下面进行相关说明:
首先说说 n,r,t
n 软回车:
在Windows中表示换行且回到下一行的最开始位置
在Linux/unix中只表示换行,但不会回到下一行的开始位置
r 软空格:
在Linux/unix 中表示返回到当行的最开始位置
在Mac OS中表示换行且返回到下一行的最开始位置,相当于Windows里的 n 的效果
t 跳格(移至下一列)
补充说明:
它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
rn 一般一起用,用来表示键盘上的回车键(Linux,Unix中),也可只用 n(Windwos中),在Mac OS中用r表示回车!
t 表示键盘上的 TAB 键
文件中的换行符号:
windows: n
linux/unix: rn
下面以代码说明PHP中去除字符串中换行的三种常用的方法
// 1)使用转义字符函数 <?php $str = str_replace(array("\r\n", "\r", "\n"), '', $str); //这里必须要用双引号 ?> // 2)使用正则表达式替换 <?php $str = preg_replace('/\s*/', '', $str); //这里好像无所谓,但建议单引号 ?> // 3)使用PHP系统常量【推荐】 //这种方法移除换行符不行 $str = str_replace(PHP_EOL, '', $str); ?>