Подтвердить что ты не робот

PHP: попытка создать новую строку с помощью "\n"

Я пишу это:

echo "foo";
echo "\n";
echo "bar";

и "bar" не записаны в строке ниже.

Что я делаю неправильно?

Хави

4b9b3361

Ответ 1

Новые строки в HTML выражаются через <br>, а не через \n.

Использование \n в PHP создает новую строку в исходном коде, а макет исходного кода HTML не связан с компоновкой экрана HTML.

Ответ 2

Если вы хотите написать простой текст, вы должны убедиться, что для типа контента установлено значение Content-Type: text/plain. Пример:

header('Content-Type: text/plain');

Если вы имеете дело с HTML, у вас есть два варианта. Один из них - вставить новую строку, используя <br> (Or <br /> для XHTML). Другой заключается в том, чтобы поместить простой текст в элемент <pre> (в этом случае "pre" означает предварительно отформатированный).

Ответ 3

Если вы хотите, чтобы новый строковый символ был вставлен в обычный текстовый поток, вы можете использовать независимый от ОС глобальный PHP_EOL

echo "foo";
echo PHP_EOL ;
echo "bar";

В выражениях HTML вы увидите новую строку между foo и bar, если вы посмотрите на исходный код страницы.

ergo, полезно, если вы выставляете say, цикл значений для поля выбора, и вы получаете исходный код html, который является более "красивым" или более легким для чтения для себя позже. например.

foreach( $dogs as $dog )
echo "<option>$dog</option>" . PHP_EOL ;

Ответ 4

PHP генерирует HTML. Вы можете:

echo "foo";
echo "<br />\n";
echo "bar";

Ответ 5

Если ваш текст имеет символы новой строки, используйте функцию nl2br php:

<?php
$string = "foo"."\n"."bar";
echo nl2br($string);
?>

Это должно выглядеть хорошо в браузере

Ответ 6

Предполагая, что вы просматриваете вывод в веб-браузере, у вас есть как минимум два варианта:

  • Оборудуйте свой текстовый блок операторами <pre>

  • Измените свой \n на тег HTML <br> (<br/> также будет делать)

Ответ 7

Поскольку он не упоминался, вы также можете использовать свойство белого пробела CSS

body{
    white-space:pre-wrap;
}

Что говорит браузеру сохранять пробелы, чтобы

<body>
    <?php
        echo "hello\nthere";
    ?>
</body>

Отобразится

hello
there

Ответ 8

Мы можем использовать \n как новую строку в php.

Фрагмент кода:

 <?php
  echo"Fo\n";
  echo"Pro";
?>

Выход:

Fo
Pro

Ответ 9

Он будет записан в новой строке, если вы изучите исходный код страницы. Если вы хотите, чтобы он появлялся в новой строке, когда он отображается в браузере, вместо этого вы должны использовать тег <br />.

Ответ 11

echo "foo<br />bar";

Ответ 12

Мы можем применить \n в php, используя два типа

  • Использование CSS

    body {
        white-space: pre-wrap;
    }
    

    Что говорит браузеру сохранять пробелы, чтобы

    <body>
        <?php
            echo "Fo\n Pro";
        ?>
    </body>
    

    Результат:

    Fo
    Pro

  • Используя nl2br

    nl2br: Вставляет разрывы строк HTML перед всеми символами новой строки в строке

    <?php
        echo nl2br("Fo.\nPro.");
    ?>
    

    Результат

    Fo.
    Pro.