PHP验证问题:行尾字符无效;期望"\n"但找到了"\r\n"。

15

我正在使用Sublime文本编辑器。我想要在验证器中验证一个Prestashop模块。但是它显示以下错误: 行末字符无效;期望 "\n" 但发现 "\r\n" 这一行代码只包含<?php。我已经在不同的编辑器中搜索并替换了"\r\n"为"\n",但根本没有用。 你能告诉我如何解决这个问题吗?任何帮助和建议都将不胜感激。谢谢。

2个回答

23

非常感谢。PHP Storm 有类似的东西吗? - Tarun Nagpal
2
@TarunNagpal 是的,实际上我使用的是 PHP Storm。转到“文件->行分隔符”并将其更改为 Unix 的“LF”。就像在 PHP Storm 中的大多数操作一样,如果你在执行此操作时选择了项目的根目录,则会为您转换所有文件。如果你正在编辑一个打开的文件,它只会对该文件起作用。你也可以通过“编辑->转换缩进”来进行缩进操作。 - Nate I
谢谢,它可以工作了! - Mihir Bhatt

1

最优雅的解决方案是使用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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接