服务器处理客户端上换行切割兼容性问题

背景:

用户可以上传文本,里面含有多条数据,每行一条数据。服务器解析数据然后处理数据。

问题;

windows 上传文件正常,mac电脑上传出现切割错误。

原因:

换行在windows 和 linux 和 mac 不统一

windows :\r\n  linux :\n   mac: 系统9之前是 \r  后面是\n

  同事说直接用

PHP  explode(EOL, XXXX) 进行对windows 用户上传切割会出现空格,所以改用explode(“\r\n”, xxxxx),这样子在windows 上传的用户确实没有问题,但mac 的是\n 那么就不会切割。我自己百度一下网上说处理换行要用explode(EOL, XXXX),如果你只是在自己电脑上测试,肯定没有问题,因为EOL对应是你自己电脑的换行,所以就没有问题。但我们放到服务器上面我们就要处理各种用户了。

解决方案:(前提是你的服务器是linux 以\n ,别的同理解决)

1: 如果含有\n 直接就把 \r 替换””.

2:如果不\n那么说明就是mac 9 以前的系统的用户,直接把\r 换成\n。

3:然后按照 explode(“\n”, xxxxx) 切割

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注