rn怎样在PHP的正则表达式中匹配到?

WBOY
發布: 2016-06-23 13:11:20
原創
1712 人瀏覽過

例如这么一串小字符串,\r\n
如何匹配到\r\n?
(\\r\\n)+好像不行?


回复讨论(解决方案)

“/[\r\n]+/" 一定要放在双引号中,否则 \r\n 会被解释为 \、r、\、n
或 '/[\x0d\x0a]+/'

我单独做了个字符串试了下,确实是可以,但是我遇到的问题是:
我是从数据库中取出的一个字符串,这串字符串中包含\r\n这样的换行符,直接输出到浏览器是原样输出,我想用preg_replace用
替换这两个字符,不管怎样都无法提取到这两个字符,像"/(\\r\\n)+/"或者如你所说的那样替换,都无法匹配到。字符串录入数据库时已经做过转义,肯定版主解答下这是什么原因?非常感谢

“/[\r\n]+/" 一定要放在双引号中,否则 \r\n 会被解释为 \、r、\、n
或 '/[\x0d\x0a]+/'


我单独做了个字符串试了下,确实是可以,但是我遇到的问题是:
我是从数据库中取出的一个字符串,这串字符串中包含\r\n这样的换行符,直接输出到浏览器是原样输出,我想用preg_replace用
替换这两个字符,不管怎样都无法提取到这两个字符,像"/(\\r\\n)+/"或者如你所说的那样替换,都无法匹配到。字符串录入数据库时已经做过转义,肯定版主解答下这是什么原因?非常感谢

echo base64_encode(你直接从数据库里独处的内容);
贴出结果

转 

php 提供有 nl2br 函数,就是干这个这个事情的

echo base64_encode(你直接从数据库里独处的内容);
贴出结果

转 

php 提供有 nl2br 函数,就是干这个这个事情的



nl2br试过,没有作用,因为被转义成了 \\r\\n
我用str_replace("\\r\\n","
",$string);是可以成功替换的达到要求的。
 base64_encode输出结果:
W3NpemU9MjBdMjBweOeahOWtl+S9k1svc2l6ZV1cclxuW2Jd5paH5a2X5Yqg57KXWy9iXVxyXG5baV3lgL7mlpxbL2ldXHJcblt1XeS4i+WIkue6v1svdV1cclxuW3Nd5Lit5YiS57q/Wy9zXVxyXG5bY29sb3I9I2YwMF3nuqLoibJbL2NvbG9yXVxyXG5bdXJsXWh0dHA6Ly93d3cuMTYzLmNvbVsvdXJsXVxyXG5bZW1haWxdcmVkXzAyNkAxNjMuY29tWy9lbWFpbF1cclxuW2ltZ11xcGljLzMvMzAuZ2lmWy9pbWdd

$s = 'W3NpemU9MjBdMjBweOeahOWtl+S9k1svc2l6ZV1cclxuW2Jd5paH5a2X5Yqg57KXWy9iXVxyXG5baV3lgL7mlpxbL2ldXHJcblt1XeS4i+WIkue6v1svdV1cclxuW3Nd5Lit5YiS57q/Wy9zXVxyXG5bY29sb3I9I2YwMF3nuqLoibJbL2NvbG9yXVxyXG5bdXJsXWh0dHA6Ly93d3cuMTYzLmNvbVsvdXJsXVxyXG5bZW1haWxdcmVkXzAyNkAxNjMuY29tWy9lbWFpbF1cclxuW2ltZ11xcGljLzMvMzAuZ2lmWy9pbWdd';$s = base64_decode($s);echo nl2br(stripcslashes($s));
登入後複製
登入後複製
20px的字体<br /><strong>文字加粗</strong><br />倾斜<br />下划线<br />中划线<br />[color=#f00]红色[/color]<br />http://www.163.com<br />red_026@163.com<br />
登入後複製
登入後複製

$s = 'W3NpemU9MjBdMjBweOeahOWtl+S9k1svc2l6ZV1cclxuW2Jd5paH5a2X5Yqg57KXWy9iXVxyXG5baV3lgL7mlpxbL2ldXHJcblt1XeS4i+WIkue6v1svdV1cclxuW3Nd5Lit5YiS57q/Wy9zXVxyXG5bY29sb3I9I2YwMF3nuqLoibJbL2NvbG9yXVxyXG5bdXJsXWh0dHA6Ly93d3cuMTYzLmNvbVsvdXJsXVxyXG5bZW1haWxdcmVkXzAyNkAxNjMuY29tWy9lbWFpbF1cclxuW2ltZ11xcGljLzMvMzAuZ2lmWy9pbWdd';$s = base64_decode($s);echo nl2br(stripcslashes($s));
登入後複製
登入後複製
20px的字体<br /><strong>文字加粗</strong><br />倾斜<br />下划线<br />中划线<br />[color=#f00]红色[/color]<br />http://www.163.com<br />red_026@163.com<br />
登入後複製
登入後複製



非常非常感谢!
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!