什么时候使用php_ol是一个好主意?
我有时会在PHP代码示例中看到这种情况。这是否处理DOS/Mac/Unix终端线问题?
什么时候使用php_ol是一个好主意?
我有时会在PHP代码示例中看到这种情况。这是否处理DOS/Mac/Unix终端线问题?
当前回答
PHP_EOL的定义是,它为您提供正在操作的操作系统的换行符。
在实践中,您几乎不需要这个。考虑以下几个案例:
When you are outputting to the web, there really isn't any convention except that you should be consistent. Since most servers are Unixy, you'll want to use a "\n" anyway. If you're outputting to a file, PHP_EOL might seem like a good idea. However, you can get a similar effect by having a literal newline inside your file, and this will help you out if you're trying to run some CRLF formatted files on Unix without clobbering existing newlines (as a guy with a dual-boot system, I can say that I prefer the latter behavior)
PHP_EOL太长了,真的不值得使用。
其他回答
有一个明显的地方它可能有用:当您编写主要使用单引号字符串的代码时。有争议的是:
echo 'A $variable_literal that I have'.PHP_EOL.'looks better than'.PHP_EOL;
echo 'this other $one'."\n";
它的艺术在于始终如一。混合和匹配"和"的问题是,当你得到很长的字符串时,你真的不想去寻找你使用的引用类型。
就像生活中的所有事情一样,这取决于上下文。
是的,PHP_EOL表面上用于以跨平台兼容的方式查找换行符,因此它处理DOS/Unix问题。
注意,PHP_EOL表示当前系统的结束字符。例如,当在类unix系统上执行时,它将找不到Windows结束行。
PHP_EOL(字符串) 此平台的正确“行结束”符号。 自PHP 4.3.10和PHP 5.0.2起可用
当读写服务器文件系统上的文本文件时,可以使用这个常量。
在大多数情况下,行结束并不重要,因为大多数软件都能够处理文本文件,而不管它们的来源。你应该与你的代码保持一致。
如果行结束符很重要,则显式地指定行结束符,而不是使用常量。例如:
HTTP报头必须用\r\n分隔 CSV文件应该使用\r\n作为行分隔符
当你想要一个新的行,并且你想跨平台的时候,你可以使用PHP_EOL。
这可能发生在将文件写入文件系统时(日志、导出、其他)。
如果您希望生成的HTML具有可读性,则可以使用它。所以可以在<br />后面加上PHP_EOL。
如果你在cron上运行php脚本,你需要输出一些东西,并将其格式化后显示在屏幕上,你就可以使用它。
如果你要发送一封需要一些格式的电子邮件,你可以使用它。
如果要输出多行,使用error_log()非常方便。
在我的windows安装中,我发现很多调试语句看起来很奇怪,因为开发人员在拆分字符串时假定unix结尾。