PHP处理control-M字符(^M)的方式

jackxiang 2013-6-24 14:31 | |
背景:在接口有奇怪的符号,如下:
^M
^M
{"code":"0","msg":"参数无效"}
代码(把^M 和换行全替换成空: \r\n 在Unix下显示是:^M且换行了):

现在好了。没有换行也没有M了,也可:
vim编辑下,然后: :%s/\r\+$//e
如直接用PHP的trim替换后,还是有换行,只是^m没了。就是下文的直接替换:



^M字符的问题。这个可以导致nginx出现400的错误响应,没法处理该请求。

// if you are upset with windows' ^M characters at the end of the line,
// these two lines are for you:
$trans = array("\x0D" => "");
$text = strtr($orig_text,$trans);

// note that ctrl+M (in vim known as ^M) is hexadecimally 0x0D


这个处理方式最简洁了,可以试试,php手册上的例子


来自:http://www.aslibra.com/blog/read.php/1718.htm

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6478/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2013-6-24 14:33
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]