php验证问题行尾字符无效;期待" \ n"但发现" \ r \ n"

时间:2016-02-10 18:39:22

标签: php replace sublimetext3 prestashop

我正在使用Sublime文本编辑器。我想验证validator中的Prestashop模块。但它显示的错误就像 End of line character is invalid; expected "\n" but found "\r\n"  此行代码仅包含<?php。我已搜索并替换为 &#34; \ r \ n&#34;用&#34; \ n&#34;来自不同的编辑。但它根本不起作用。 你能告诉我如何解决这个问题吗?任何帮助和建议都会非常明显。感谢

2 个答案:

答案 0 :(得分:10)

这是一个操作系统问题。当您进行跨平台编码时会发生这种情况。操作系统有不同的方式来解释行尾。在这里,这可能有所帮助:

Convert line endings

此外,sublime也有解决方案。如果您要编写Unix代码,请确保更改Unix的换行符。 View->Line Endings->Unix

这个解决方案实际上更深入一些:

http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

答案 1 :(得分:1)

最优雅的解决方案是使用linux而不是windows进行编码 - 因为简单地说:linux使用\ n进行换行,windows使用\ r \ n

比记事本更先进的大多数编辑器都支持将文件从windows样式转换为linux样式。只需浏览各自的菜单。

并提供在 PHP中编写的解决方案:

public class Role
{
    public int Id { get; set; }

    public string Name { get; set; }

    public ICollection<User> Users { get; set; }

    public Role()
    {
        this.Users = new Collection<User>();
    }
}

你的替换可能不起作用,因为大多数常规编辑器使用反斜杠就像字符反斜杠一样,并且不将\ n解释为换行符的换行符,而只是作为反斜杠和n。