我正在使用Sublime文本编辑器。我想要在验证器中验证一个Prestashop模块。但是它显示以下错误:
行末字符无效;期望 "\n" 但发现 "\r\n"
这一行代码只包含<?php
。我已经在不同的编辑器中搜索并替换了"\r\n"为"\n",但根本没有用。
你能告诉我如何解决这个问题吗?任何帮助和建议都将不胜感激。谢谢。
我正在使用Sublime文本编辑器。我想要在验证器中验证一个Prestashop模块。但是它显示以下错误:
行末字符无效;期望 "\n" 但发现 "\r\n"
这一行代码只包含<?php
。我已经在不同的编辑器中搜索并替换了"\r\n"为"\n",但根本没有用。
你能告诉我如何解决这个问题吗?任何帮助和建议都将不胜感激。谢谢。
这是一个操作系统问题。当您进行跨平台编码时会发生这种情况。操作系统有不同的方式来解释行末标记。以下内容可能有所帮助:
另外,Sublime也有一种解决方案。如果您要为Unix编写代码,请确保将行尾标记更改为Unix格式。 查看->行尾->Unix
这个解决方案实际上更加深入:
http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/
最优雅的解决方案是使用Linux进行编程,而不是Windows——因为简单来说:Linux使用\n作为换行符,Windows使用\r\n。
大多数高级于记事本的编辑器都支持将文件从Windows样式转换为Linux样式。只需浏览它们各自的菜单即可。
而提供一个用PHP编写的解决方案:
<?php
$input = file_get_contents("old.php");
$data = str_replace("\r\n", "\n", $input);
file_put_contents("new.php");
你的替换可能没有生效,因为大多数常规编辑器将反斜杠仅用作反斜杠字符,并不将 \n 解释为换行符的转义序列,而只是将其作为反斜杠和n。