Экспериментируйте с массивами и задаетесь вопросом, почему следующее, кажется, не печатает значения в SEPARATE, когда я запускаю его?
<?php $my_array = array("stuff1", "stuff2", "stuff3"); echo $my_array[0] . "\n"; echo $my_array[1] . "\n"; echo $my_array[2] . "\n"; ?>
Из моего учебника PHP:
Одной ошибкой, которую часто делают новые программисты php (особенно из C-фона), является попытка разбить строки текста в своих браузерах, помещая символы конца строки («\ n») в строки, которые они печатают. Чтобы понять, почему это не работает, вы должны различать вывод php (который обычно является HTML-кодом, готовым к отправке через Интернет в программу браузера) по тому, как вывод выводится браузером пользователя. Большинство программ для браузеров будут делать свой собственный выбор о том, как разделить строки в тексте HTML, если вы не нажмете разрыв строки с тегом
<BR>
. Конечные символы в строках помещают разрывы строк в исходный HTML-код, который php отправляет в браузер пользователя (который может быть полезен для создания читаемого источника HTML), но они обычно не будут влиять на то, как выглядит текст веб-страницу.
Тег-тег корректно интерпретируется всеми браузерами, тогда как \n
обычно влияет только на исходный код и делает его более читаемым.
Это делает трюк.
<?php $my_array = array("stuff1", "stuff2", "stuff3"); foreach ( $my_array as $item ) { echo $item . "<br/>"; } ?>
Вам нужно печатать с помощью <br/>
вместо \n
потому что тип mime по умолчанию PHP – это HTML, и вы используете <br/>
для выполнения разрывов строк в HTML.
Например,
<?php $my_array = array("stuff1", "stuff2", "stuff3"); echo $my_array[0] . "<br/>"; echo $my_array[1] . "<br/>"; echo $my_array[2] . "<br/>"; ?>
Если вы просматриваете вывод в веб-браузере, символы новой строки не отображаются визуально . Вместо этого вы можете использовать разрывы HTML:
<?php $my_array = array("stuff1", "stuff2", "stuff3"); echo implode('<br>', $my_array); ?>
Это потому, что в HTML разрыв строки – это <br />
, а не "\n"
.