我最近发现,只有一个“cr”而不是一个“cr lf”或“lf”的代码行导致php行为怪异,即将两行视为一行,忽略cr,或者更准确地说,将其解释为:回车而不是换行符。
我以前从来没有遇到过这样的问题,但最近,我发现记事本++有时在我按“回车”键移动到新行时只放了一个CR…这会导致脚本的行为不好。
例如,这个hello world脚本在用lf或crlf填充行但只使用crs时运行良好(至少我在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)有没有办法强迫记事本++在我按回车键时输入crlf或lf?

最佳答案

Mac使用CR,Linux使用LF。Windows使用CR-LF,所以Windows操作系统在CR之后不插入LF是非常奇怪的。也许我在这里遗漏了一些东西。
在Windows上编辑->在Linux上查看=确定
在Windows上编辑->在Mac上查看=确定
所以我猜可能是你的ftp客户端。请确保将纯文本文件上载为ascii,而不是二进制文件。

关于php - 我在做梦还是回车阻止PHP版本看到代码行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11218538/

10-13 06:01