本文是PHP对换行符处理的详细分析和介绍,供有需要的朋友参考。
一首先说说 \r 与\n的区别回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。在计算机出现之前,有一种东西叫Teletype Model 33(Linux/Unix下的tty概念也来源于此),每秒钟可以打10个字符。但是它有一个问题,就是打一个新行需要0.2秒,正好是两个字符。如果一个新字符在0.2秒内出现,该字符将丢失。
于是,开发者想了一个办法来解决这个问题,就是在每行的末尾加两个字符。一个叫“回车”,它告诉打字机把打印头定位在左边界;另一种叫做“换行”,它告诉打字机将纸向下移动一行。这就是“换行”和“回车”的由来,从它们的英文名也可以看出来。
后来发明了计算机,把这两个概念推广到计算机上。那时候内存很贵,有科学家觉得每行末尾加两个字太浪费了。加一个就好。结果,出现了分歧。
在Unix系统中,每行末尾只有“换行”,即' \ n ';在Windows系统中,每行的结尾是“回车”,即“\ n \ r”;在Mac系统中,每行的结尾都是“Enter”,即' \ n ';一个直接的后果是,如果在Windows中打开Unix/Mac系统下的文件,所有的文本都会变成单行;如果Windows中的文件是在Unix/Mac下打开的,则每行的末尾可能会多一个M符号。
c语言编程(windows系统)\r返回到该行的开头,这将覆盖该行以前的输出。如: (注以下是C++代码)最后只显示西西,背面覆盖复制码哈哈哈。代码如下:int main () {cout '哈哈哈' ' \ r ' ' Xixi}\n是enter+换行。将光标移动到行首,然后换到下一行,即下一行的第一行。复制代码如下:int main () {cout '哈哈哈' ' \ n ' ' xixi}二换行符的表现形式在普通文件中,比如(。txt,php等。),换行符是' \ r \ n ',' \ r '。但在HTML文件中显示时是“br/”标签(这里先解释一下:HTML的TEXTAREA文本字段中的换行符也是' \r '或“\n”)。可以用PHP脚本来转换。代码如下(来至PHP手册):复制代码如下://order of replacement $ str=' line 1 \ nline 2 \ rline 3 \ r \ nline 4 \ n ';$order=array('\r\n ',' \n ',' \ r ');$ replace=' br/';$newstr=str_replace($order,$replace,$ str);
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。