Возможный дубликат:
Почему текст PHP echo'd теряет форматирование?
Я не могу заставить новую строку работать правильно. Он просто выходит как одна строка. Как это –
Make: Sony Model: a Processor: Intel Core 2 Duo
Это код для него —
$message="Make: " . $_POST['make'] . "\r\n Model: " . $_POST['model'] . "\r\n Processor: " . $_POST['processor'];
Когда это отправляется как электронное письмо, оно отлично работает, но когда я делаю
echo $message;
он просто выходит как выше – все это на одной линии. Как я могу сделать эту работу?
Спасибо
Вы, по-видимому, повторяете это на веб-странице.
Браузеры не (или, по крайней мере, не должны) уважать буквальные новые строки, вместо этого вы должны использовать тег HTML.
Попробуй это:
echo str_replace(array("\r\n","\r","\n"),'<br>',$message); // or echo nl2br($message);
HTML игнорирует символы новой строки.
Вместо этого вы должны использовать <br />
, <pre>
или <table>
.
Если вы хотите распечатать его с помощью HTML, вам нужно будет использовать <br />
или использовать nl2br()
.
Использование <br />
:
$message = 'Make: ' . $_POST['name'] . '<br />'; //...
Если вы хотите отправить открытый текст, установите соответствующий HTTP-заголовок, например
header('Content-Type: text/plain');
Большинство браузеров воспримут это как подсказку, чтобы отобразить ее в «сыром режиме».