我最近发现在行尾只有一个“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?
答案 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中所述。