什么时候使用php_ol是一个好主意?
我有时会在PHP代码示例中看到这种情况。这是否处理DOS/Mac/Unix终端线问题?
什么时候使用php_ol是一个好主意?
我有时会在PHP代码示例中看到这种情况。这是否处理DOS/Mac/Unix终端线问题?
当前回答
我刚刚在输出到Windows客户端时遇到了这个问题。当然,PHP_EOL是针对服务器端的,但是php的大部分内容输出都是针对windows客户端的。所以我必须把我的发现放在这里给下一个人看。
A)呼应“我的短信”。PHP_EOL;//不好,因为这只是输出\n,大多数版本的windows记事本显示在一行上,大多数windows会计软件不能导入这种类型的行结束字符。
B)回复“My Text \r\n”;//不好,因为单引号php字符串不解释\r\n
C)回复“My Text \r\n”;//太棒了!在记事本中看起来正确,并在将文件导入到其他windows软件(如windows会计和windows制造软件)时工作。
其他回答
我正在使用WebCalendar,发现Mac iCal在导入生成的ics文件时呕吐,因为行尾在xcal.php中硬编码为“\r\n”。我进去,用PHP_EOL替换了所有的事件,现在iCal是快乐的! 我还在Vista和Outlook上进行了测试,即使行尾字符是“\n”,也能导入文件。
PHP_EOL(字符串) 此平台的正确“行结束”符号。 自PHP 4.3.10和PHP 5.0.2起可用
当读写服务器文件系统上的文本文件时,可以使用这个常量。
在大多数情况下,行结束并不重要,因为大多数软件都能够处理文本文件,而不管它们的来源。你应该与你的代码保持一致。
如果行结束符很重要,则显式地指定行结束符,而不是使用常量。例如:
HTTP报头必须用\r\n分隔 CSV文件应该使用\r\n作为行分隔符
我更喜欢用\n\r。而且我在windows系统上,\n在我的经验中工作得很好。
由于PHP_EOL不能与正则表达式一起工作,而正则表达式是处理文本的最有用的方法,所以我真的从未使用过它,也不需要使用它。
有一个明显的地方它可能有用:当您编写主要使用单引号字符串的代码时。有争议的是:
echo 'A $variable_literal that I have'.PHP_EOL.'looks better than'.PHP_EOL;
echo 'this other $one'."\n";
它的艺术在于始终如一。混合和匹配"和"的问题是,当你得到很长的字符串时,你真的不想去寻找你使用的引用类型。
就像生活中的所有事情一样,这取决于上下文。
我刚刚在输出到Windows客户端时遇到了这个问题。当然,PHP_EOL是针对服务器端的,但是php的大部分内容输出都是针对windows客户端的。所以我必须把我的发现放在这里给下一个人看。
A)呼应“我的短信”。PHP_EOL;//不好,因为这只是输出\n,大多数版本的windows记事本显示在一行上,大多数windows会计软件不能导入这种类型的行结束字符。
B)回复“My Text \r\n”;//不好,因为单引号php字符串不解释\r\n
C)回复“My Text \r\n”;//太棒了!在记事本中看起来正确,并在将文件导入到其他windows软件(如windows会计和windows制造软件)时工作。