php中换行的问题 \r\n

PIGer920 2011-05-17 08:31:57
在textarea中按回车换行,经过post提交之后,
希望用str_ireplace将文本换行(以为是\n)替换为空字符串。但是一直没有成功。。。
之后无意间用mysql_real_escape_string处理post内容,然后echo出来之后才发现的提交上来并不是\n而是\r\n。

问题就是,从开发的角度上来说,
1 如何才能直观的观察post上来的特殊字符(比如上例中的换行)到底是什么样?上例我是无意间使用mysql_real_escape_string才发现的。。。

2 当用mysql_real_escape_string转义\r\n插入DB之后,将其显示在页面的时候,是改将\r\n转化为<br />,还是应该将\n转化为<br />? 我用\n转化为<br />来显示虽然是没有问题的,但是意识到\r\n的问题后,不知道哪种写法才是最准确的。

3 查资料\r\n是windows下的换行,而linux下为\n。如果是在linux系统下在页面的textarea中换行,post之后是不是就是\n?考虑到这个情况,应该如何对应?

请指教。。。
...全文
431 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_7di_net 2011-05-19
  • 打赏
  • 举报
回复
nl2br
(PHP 4, PHP 5)

nl2br — 在字符串所有新行之前插入 HTML 换行标记

说明
string nl2br ( string $string [, bool $is_xhtml = true ] )
在字符串 string 所有新行之前插入 '<br />' 或 '<br>',并返回。

参数

string
输入字符串。

is_xhtml
是否使用 XHTML 兼容换行符。


返回值
返回调整后的字符串。

范例

Example #1 nl2br() 使用范例

<?php
echo nl2br("foo isn't\n bar");
?>
以上例程会输出:

foo isn't<br />
bar
Example #2 使用 is_xhtml 生成合法的 HTML 标记

<?php
echo nl2br("Welcome\r\nThis is my HTML document", false);
?>
以上例程会输出:

Welcome<br>
This is my HTML document

KAMCHIHAU 2011-05-19
  • 打赏
  • 举报
回复
這些符號,數據庫也好,服務器也好,都會格了的
kyzy_yy_pm 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 moocky 的回复:]

看一下nl2br函数
[/Quote]+
木目子 2011-05-18
  • 打赏
  • 举报
回复
看一下nl2br函数
an9ryfr09 2011-05-17
  • 打赏
  • 举报
回复
1 可以使用PHP_EOL这个常量,它会自动识别操作系统,而选择合适的换行符。
2 textarea提交后,存储到DB前应该转换为<br />,显示在网页上也应该是<br />。直接使用nl2br()函数就可以解决你的1,2问题。不用自己replace。你不用去关心用户提交上来的到底是/r/n或/n。他会自动处理。
3 错!提交上来的到底是/r/n或/n,取决于客户端,页面在什么系统上无所谓,关键是用户的浏览器在什么系统上。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧