2011-10-28 14 views
6

Powiel możliwe:
Why does PHP echo'd text lose it's formatting?PHP New Line nie działa

nie mogę dostać nową linię do funkcjonowania prawa pracy. Po prostu wychodzi jako jedna linia. Tak -

Make: Sony Model: a Processor: Intel Core 2 Duo 

Jest to kod dla niego ---

$message="Make: " . $_POST['make'] . "\r\n Model: " . $_POST['model'] . "\r\n Processor: " . $_POST['processor']; 

Gdy jest wysyłane jako wiadomości e-mail to działa idealnie, ale kiedy zrobić

echo $message; 

to po prostu przychodzi jak wyżej - wszystko w jednej linii. Jak mogę to usprawnić?

Dziękuje

+0

czy moje imię wygląda jak rodger? lol - nie jego nie duplikuje. –

+0

@ user977229 Mimo to jest to dupek. – middus

Odpowiedz

13

Ty zapewne powtarzając to na stronie internetowej.

Przeglądarki nie (lub przynajmniej nie powinny) respektować dosłownych nowych linii, należy zamiast tego użyć znacznika HTML <br>.

Spróbuj tego:

echo str_replace(array("\r\n","\r","\n"),'<br>',$message); 
// or 
echo nl2br($message); 
+0

Dziękuję, jak mogę wprowadzić kod
? –

+0

patrz edytuj powyżej ... – DaveRandom

+1

Pozdrawiam kolega - pracował –

2

Jeśli chcesz wydrukować go za pomocą HTML to albo trzeba użyć <br /> lub użyć funkcji nl2br().

Korzystanie <br />:

$message = 'Make: ' . $_POST['name'] . '<br />'; //... 

Jeśli chcesz wysłać zwykłego tekstu, należy ustawić odpowiedni nagłówek HTTP, na przykład

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

Większość przeglądarek potraktuje to jako podpowiedź do wyświetlenia w "trybie surowym".

3

HTML ignoruje znaki nowej linii.

Zamiast tego należy użyć <br />, <pre> lub <table>.

+0

Oryginalne pytanie (nie sarky komentarz): '

' ?? Jak to działa? – DaveRandom

+0

@DaveRandom Wystarczy użyć tabeli, aby wyświetlać dane tabelaryczne zamiast formatowania tekstu ?! – middus

+1

Och, właśnie widzę. Przepraszam, myślałem, że mówisz, że wstawienie go do tabeli spowodowałoby podział linii. Nie zwracając uwagi. +1. – DaveRandom