PHP_EOL не работает на Mac - PullRequest
2 голосов
/ 28 декабря 2011

Кто-нибудь может мне сказать, почему PHP_EOL не работает на моем Mac?

Код:

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

Может ли какое-нибудь тело помочь мне в этом?

Ответы [ 2 ]

8 голосов
/ 28 декабря 2011

Я просто собираюсь догадаться, что вы смотрите на результат в вашем браузере , где пробелы свернуты. PHP может вывести это:

This is first line
This is second line

Но браузер отображает это так:

Это первая строка Это вторая строка

Чтобы вставить явный разрыв строки в HTML, используйте тег <br>.

0 голосов
/ 10 марта 2019

Иногда вы можете найти этот постоянный неопределенный, современный хостинг с последним движком 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

Надеюсь, этот ответ поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...