解析PHP处理换行符的问题 \r\n_php技巧

一首先说说 \r 与\n的区别
回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<换行><回车 >”,即“\n\r”;Mac系统里,每行结尾是“<回车>”,即"\n";。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

c语言编程时(windows系统)
\r 就是return 回到 本行行首 这就会把这一行以前的输出 覆盖掉。
如: (注以下是C++代码)
最后只显示 xixi 而 hahaha 背覆盖了

复制代码 代码如下:

int main ()
{
cout << "hahaha" << "\r" << "xixi" ;
}

\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉

复制代码 代码如下:

int main()
{
cout << "hahaha" << "\n" << "xixi" ;
}

二换行符的表现形式
在普通文件里如(.txt,.php等)换行符是"\r\n", "\n", "\r"。但表现在HTML文件里时(这里说明一下:HTML的TEXTAREA文本域里的换行也是"\r"或“\n”)是“<br/>”标签。
使用PHP脚本可以进转换。
代码如下(来至PHP手册):

复制代码 代码如下:

//Order of replacement
$str="Line1\nLine2\rLine3\r\nLine4\n";
$order=array("\r\n","\n","\r");
$replace='<br/>';
$newstr=str_replace($order,$replace,$str);

时间: 2024-08-31 17:09:46

解析PHP处理换行符的问题 \r\n_php技巧的相关文章

PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)_php技巧

PHP压缩html网页代码 (清除空格,换行符,制表符,注释标记). 有个不错的方法就是压缩HTML,压缩html 其实就是:清除换行符,清除制表符,去掉注释标记 .它所起到的作用不可小视. 现提供PHP 压缩HTML函数.请大家不妨试试看,感觉还不错吧. 不废话了,直接上代码: 复制代码 代码如下: <?php /** * 压缩html : 清除换行符,清除制表符,去掉注释标记 * @param $string * @return 压缩后的$string * */ function compr

正则表达式.号元字符(除了回车符\r和换行符\n)

正则表达式.号元字符: 点号(.)元字符可以匹配除了回车符(\r)和换行符(\n)之外的任意字符. 语法结构: 构造函数方式: new RegExp(".") 对象直接量方式: [JavaScript] 纯文本查看 复制代码运行代码 /./ 浏览器支持: IE浏览器支持此元字符. 火狐浏览器支持此元字符. 谷歌浏览器支持此元字符. 注意: 在IE9以上浏览器或者其他标准浏览器中,小数点能够匹配除了回车符(\r)和换行符(\n)之外的任意字符. 在IE8以下浏览器中,小数点能够匹配除了换

php 字符串中的\n换行符无效、不能换行的解决方法

 这篇文章主要介绍了php 字符串中的换行符无效.不能换行的解决方法,实际上是PHP的双引号和单引号的使用问题,需要的朋友可以参考下 例如下面的代码:    代码如下:<?php echo 'hellon'; echo 'world'; ?> 程序的中的换行符n会直接输出,无法正确换行,解决方法是把单引号改为双引号:  代码如下:<?php echo "hellon"; echo "world"; ?> 这样就可以了!其实就是PHP的双引号和

php 字符串中的\n换行符无效、不能换行的解决方法_php实例

例如下面的代码: 复制代码 代码如下: <?phpecho 'hello\n';echo 'world';?> 程序的中的换行符\n会直接输出,无法正确换行,解决方法是把单引号改为双引号: 复制代码 代码如下: <?phpecho "hello\n";echo "world";?> 这样就可以了!其实就是PHP的双引号和单引号的区别问题,简单个概括下双引号中的变量可以解析,单引号就是绝对的字符串. 附:PHP去除换行的三种方法代码 复制代码

PHP中替换换行符的几种方法小结_php技巧

第一种: 复制代码 代码如下: <?php ?$str="this is a test \n"; $patten = array("\r\n", "\n", "\r"); ?//先替换掉\r\n,然后是否存在\n,最后替换\r $str=str_replace($order, "", $str); ?> //php 有三种方法来解决 //1.使用str_replace 来替换换行 $str =

PHP fwrite换行写入时换行符不起作用的原因

php的换行符我们都知道:\n ,回车符:\r,在需要换行时,通常是用"\r\n"这个组合.但是为什么我们在使用fwrite写入文件时\n换行符不起作用呢.我们先看下面这个例子: <?php $filename = 'file.txt'; $word = '你好!\r\n欢迎来到www.111cn.net'; $fh = fopen($filename, "a"); //w从开头写入 a追加写入 echo fwrite($fh, $word); fclose(

php正则表达式过滤空格 换行符 回车

  一,下例可以去除额外空白  代码如下   <?php  $str = " This line containstliberal rn use of whitespace.nn";  // First remove the leading/trailing whitespace  //去掉开始和结束的空白  www.111cn.net $str = trim($str);  // Now remove any doubled-up whitespace  //去掉跟随别的挤在一

php去除换行符的方法小结(PHP

一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的.本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r.因此unix系列用 /n,windows系列用 /r/n,mac用 /r,这样就用你写的程序在不同的平台上运行有着不少的麻烦.下面是PHP去除换行符的一些常见方法. 第一种写法: $content=str_replace("\n","",$content); echo

PHP 清除HTML代码、空格、回车换行符的函数

在写采集程序时,往往需要对采集回来的内容进行处理,比如删除HTML代码.去掉多余的空格.删除回车换行符等等.下面就写一个函数来处理. function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,""); $str = ereg_replace("\t","",$str); $str = ereg_replace("\r\n",""