我是在做梦还是回车,以防止PHP版本看到代码行?

时间:2012-06-27 02:19:59

标签: php carriage-return

我最近发现在行尾只有一个“CR”而不是“CRLF”或“LF”的代码行导致PHP表现得很奇怪,即看到两行为一,忽略CR或更准确地说,将其解释为它是什么:回车而不是换行。

我之前从未遇到过这个问题但是,最近,我发现当我点击“Enter”移动到一个新行时,notepad ++有时只会放一个CR ...它会导致脚本表现不佳。

例如,当使用LF或CRLF对行进行交换时,此Hello World脚本工作正常,但只有CR崩溃(至少我在peer1和hostgator服务器上复制了这个问题 - 其他人有不同的体验吗?) ......

<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.cnn.com/" );
?>

我收到此错误:

致命错误:在第1行的/home/bernatch/public_html/test-redir-cr.php中调用未定义的函数phpheader()

显然,PHP看到<?php代码和Header函数位于同一行......

我的问题是: a)有没有办法强制PHP将单个CR解释为真正不同的行

b)有没有办法强制记事本++在按Enter键的时候输入CRLF或LF?

2 个答案:

答案 0 :(得分:1)

Mac使用CR。 Linux使用LF。 Windows使用CR-LF,因此Windows操作系统在CR之后不插入LF会非常奇怪。也许我在这里遗漏了一些东西。

在Windows上编辑 - &gt;在Linux上查看=确定

在Windows上编辑 - &gt;在Mac = OK

上查看

所以我猜它可能是你的FTP客户端。确保将纯文本文件上传为ASCII,而不是二进制文件。

答案 1 :(得分:0)

在Notepad ++中,您应该可以执行EOL转换为Windows格式,如this SuperUser.com answer中所述。