我最近发现,行尾只有“CR”而不是“CRLF”或“LF”的代码行会导致 PHP 行为异常,即将 2 行视为一行,忽略 CR 或者,更准确地说,将其解释为:回车而不是换行。
我以前从未遇到过这个问题,但最近,我发现当我按“Enter”键移动到新行时,notepad++ 有时只会放一个 CR...这会导致脚本表现不佳。
例如,这个 Hello World 脚本在使用 LF 或 CRLF 设置行时工作正常,但仅使用 CR 时崩溃(至少我在 peer1 和 hostgator 服务器上复制了这个问题——其他人有不同的经历吗?) ...
<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.cnn.com/" );
?>
我得到这个错误:
fatal error :在第 1 行调用/home/bernatch/public_html/test-redir-cr.php 中未定义的函数 phpheader()
显然,PHP 看到了 <?php
代码和Header函数在同一行...
我的问题是: a) 有没有办法强制 PHP 将单个 CR 解释为真正不同的行
或
b) 有没有办法强制 notepad++ 在我按 Enter 时输入 CRLF 或 LF?
最佳答案
Mac 使用 CR。 Linux 使用 LF。 Windows 使用 CR-LF,因此 Windows 操作系统不在 CR 后插入 LF 会很奇怪。也许我在这里遗漏了一些东西。
在 Windows 上编辑 -> 在 Linux 上查看 = OK
在 Windows 上编辑 -> 在 Mac 上查看 = 确定
所以我猜它可能是您的 FTP 客户端。确保以 ASCII 而非二进制格式上传纯文本文件。
关于php - 我是在做梦还是回车会阻止 PHP 版本看到代码行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218538/