Какая польза от нового персонажа?

Я действительно не понимаю: какова цель нового персонажа?

Если я это сделаю:

<?php echo "This is a test. \n"; echo "This is another test."; ?> 

Код приводит к тому, что оба предложения находятся в одной строке. Почему \ n не вызывает второе предложение во второй строке?

Приговоры – это каждая в своей строке, если я это делаю:

 <?php echo "This is a test. <br>"; echo "This is another test."; ?> 

Но я также видел, как люди это делают:

 <?php echo "This is a test. <br>\n"; echo "This is another test."; ?> 

Что по сути приводит к тому же выводу, что и второй фрагмент кода. Кто-то должен это объяснить?

Стандарт HTML рассматривает разрыв строки как просто еще один символ пробела, поэтому тег типа существует. Однако обратите внимание, что разрыв строки будет работать в <pre> или в элементе с стилем white-space: pre CSS.

Третий пример – просто сделать «красивый» HTML: он упрощает «просмотр источника» и проверяет его на глаз. В противном случае у вас есть длинная строка HTML.

как вы заметили, существуют различные способы создания новой строки.

<br />

это не новый символ линии, это тег XHTML, который означает, что он работает в XHTML. правильно говоря, это не новый символ линии, но тег гарантирует, что один вставлен = он заставляет разрывать линию. закрывающий тег является обязательным.

Спецификации XHTML


<br>

это HTML-тег, который заставляет прерывать строку. закрывающий тег запрещен.

Спецификации HTML 4.1


\n

является escape-последовательностью для новой строки LSC линии LSC. Общей проблемой является использование «\ n» при общении с использованием интернет-протокола, который предусматривает использование ASCII CR + LF для завершения строк. Запись «\ n» в поток текстового режима корректно работает в системах Windows, но производит только LF в Unix и что-то совершенно другое в более экзотических системах. Использование «\ r \ n» в двоичном режиме немного лучше, поскольку оно работает на многих ASCII-совместимых системах, но в общем случае все еще не работает. Один из подходов – использовать двоичный режим и непосредственно указывать числовые значения управляющей последовательности «\ x0D \ x0A».

прочитайте больше


PHP_EOL

является новой константой строки php, которая заменяется на правильную зависящую от системы новую строку.

поэтому сообщение есть, используйте все в нужном месте.

<br> даст вам новую строку в представлении пользователя; \n даст вам новую строку в исходном коде, т. е. взгляд разработчика.

Когда html отображается, только « <br /> » отображает линию прерывания. Однако разметку гораздо легче читать, когда печатается « <br />\n », так что все не в одной длинной строке.

\n – это код

<br /> основан на HTML-тегах

Между ними существует четкое различие.

Ваша проблема заключается в способе рендеринга html. Если вы посмотрите в исходном коде, первый пример будет иметь две строки в отдельных строках, но браузер не видит разрывов строк в качестве разрывов, которые должны отображаться. Это позволяет вам иметь длинный абзац в вашем источнике:

 rghruio grgo rhgior hiorghrg hg rgui ghergh ugi rguihg rug hughuigharug hruauruig huilugil guiui rui ghruf hf uhrguihgui rhguibuihfioefhw8u beruvbweuilweru gwui rgior 

Это можно было бы обернуть только в том случае, когда браузеру понадобилось это сделать, что позволило бы легко редактировать его на нужной длине, но отображалось с любым разрешением.

HTML не заботится о новых строках в исходном коде, вы можете поместить все это в одну строку. Это будет интерпретировать только как новую строку. Вы должны использовать \ n, чтобы украсить свой HTML-вывод, но лучший способ – не выводить его с PHP, а использовать его в самом HTML и вставлять в него только PHP-материал, например:

 <ul id="menu"> <?php foreach ($menu_items as $item): ?> <li> <a href="<?= htmlspecialchars($item['link']) ?>" title="<?= htmlspecialchars($item['title']) ?>"> <?= htmlspecialchars($item['title']) ?> </a> </li> <?php endforeach; ?> </ul> 

Таким образом, вам не придется беспокоиться о форматировании внутри PHP, но вы автоматически его, по дизайну, в HTML. Кроме того, вы разделяете модель-логику и представление-логику друг от друга, как это, и оставляете вывод на свой HTTP-сервер, а не на PHP-движок.

Это связано с тем, что вы создаете HTML и просматриваете его в браузере, а там более или менее игнорируются пробелы. Десять пробелов не создают большего пробела, чем одно пространство, но это не означает, что пробельный символ не работает. Попробуйте установить тип содержимого в text/plain или посмотреть источник HTML, чтобы увидеть эффект новой строки.

Правильный синтаксис XHTML для него был бы

 echo "This is the test code <br />\n"; 

<br /> отображает новую строку на экране, «\ n» отображает новую строку в исходном коду

Новый символ строки полезен иначе, например, в формате PDF. Вы правы, что новый символ линии очень мало что делает с HTML, как говорили другие люди, он рассматривается как другой, а косвенный символ. Хотя это полезно в <pre> . Он также может использоваться для форматирования вывода HTML, чтобы упростить его чтение. (Это немного раздражает, чтобы попытаться найти фрагмент HTML в строке шириной 1000 символов.)

Новый символ строки также полезен при хранении данных в базе данных. Обычно вы хотите хранить данные без специальных символов HTML, таких как <br /> чтобы их можно было легко использовать в других форматах (опять же, например, в формате PDF). На выходе вы хотите использовать nl2br() для преобразования новых строк в <br /> s.

Новый строковый символ полезен для строковых функций.

Например:

  explode( '\n' , $input ); 

Разделил бы строку новой строкой.

 str_replace( '\n' , '<br />' , $input ); 

Замените каждую новую строку в $ input тегом br.

Кроме того, поскольку PHP также имеет CLI, \ n полезна для форматирования:

например.

 echo 'Hello world'; 

Будет ли в CLI выводиться;

Hello worldphp>

 echo 'Hello world' . "\n"; 

будет выводиться;

Привет мир
PHP>

Имейте в виду, что при написании веб-скриптов он также имеет смысл использовать PHP, это больше, чем веб-движок; он также имеет CLI, где тег br бесполезен.

<br /> также бесполезно, если вы запускаете скрипт из командной строки.

 $ php -f file.php Output <br />$ 

Я знаю, что не слишком много людей используют PHP из командной строки, но это происходит:

file.php:

 <?php print "Output\n"; ?> 

В командной строке:

 $ php -f file.php Output $