PHP_EOL不适用于mac

时间:2011-12-28 06:39:14

标签: php macos

有人可以告诉我,为什么PHP_EOL无法在我的Mac上运行?

代码:

echo 'This is first line'.PHP_EOL.'This is second line';

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:8)

我只是猜测你正在查看浏览器中的结果,其中空白区域已折叠。 PHP可以输出:

This is first line
This is second line

但浏览器会像这样呈现:

  

这是第一行这是第二行

要在HTML中插入显式换行符,请使用<br>标记。

答案 1 :(得分:0)

有时候,您会发现此常量未定义,使用最新的php引擎的现代托管不会出现此问题,但我认为一件好事是编写一些代码来保存这种情况:

<?php
  if (!defined('PHP_EOL')) {
    if (strtoupper(substr(PHP_OS,0,3) == 'WIN')) {
      define('PHP_EOL',"\r\n");
    } elseif (strtoupper(substr(PHP_OS,0,3) == 'MAC')) {
      define('PHP_EOL',"\r");
    } elseif (strtoupper(substr(PHP_OS,0,3) == 'DAR')) {
      define('PHP_EOL',"\n");
    } else {
      define('PHP_EOL',"\n");
    }
  }
?>

因此,您可以毫无问题地使用PHP_EOL ...显然,PHP_EOL应该用于应该立即在更多系统上运行的脚本。

PHP_EOL的意思是:

1) on Unix    LN    == \n
2) on Mac     CR    == \r
3) on Windows CR+LN == \r\n

希望这个答案有帮助。