Jak dodać podział wiersza w echo w PHP? [Zamknięte]

92

Próbowałem dodać podział wiersza w zdaniu i dodałem /n następujący kod.

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

Z jakichś powodów w wyniku otrzymałem błąd serwera. Jak to naprawić?

jumax
źródło
4
użyj odwrotnego ukośnika, to nie jest prawidłowo zmieniony znak ucieczki \n. Ale błąd serwera nie jest związany z tą próbą, zajrzyj do logu Apache i sprawdź __(arg)dokumentację
Marek Sebera
1
Witamy w Stackoverflow. Przed wysłaniem jakiegokolwiek pytania postępuj zgodnie z poradami wymaganymi do potwierdzenia . Pamiętaj, że tylko ty czegoś chcesz i zadajesz sobie pytanie, jak to jest zaprogramowane, nie kwalifikuje się jako pytanie programistyczne jako takie.
hakre

Odpowiedzi:

255

\nto koniec linii. /nnie jest.


użycie \nz

1. echo bezpośrednio do strony

Teraz, jeśli próbujesz powtórzyć ciąg znaków na stronie:

echo  "kings \n garden";

wynik będzie:

kings garden

nie dostaniesz się gardendo nowej linii, ponieważ PHP jest językiem po stronie serwera, a wysyłasz dane wyjściowe jako HTML, musisz utworzyć podziały wierszy w HTML. HTML nie rozumie \n. Musisz użyć do tego nl2br()funkcji.

Co to jest:

Zwraca łańcuch zawierający <br />lub <br>wstawiony przed wszystkimi znakami nowej linii (\ r \ n, \ n \ r, \ n i \ r).

echo  nl2br ("kings \n garden");

Wynik

kings
garden

Uwaga Upewnij się, że powtarzasz / drukujesz \nw cudzysłowach, w przeciwnym razie zostanie to wyrenderowane dosłownie jako \ n. ponieważ interpreter php analizuje ciąg znaków w pojedynczym cudzysłowie z koncepcją tak, jak jest

so "\n" not '\n'

2. napisz do pliku tekstowego

Teraz, jeśli \nprzejdziesz echo do pliku tekstowego, możesz użyć po prostu, a echo przejdzie do nowej linii, na przykład:

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

wynik będzie:

kings
 garden
NullPoiиteя
źródło
1
Wychodząc z powyższego. To działa - przykład -> echo "<html>". "\ N"; lub echo "ogród królów". "\ n"; co dodaje podział wiersza po pierwszym wierszu. Google doprowadziło mnie tutaj, gdy chciałem dodać znaki końca linii po echu.
MarcoZen
18

Musisz użyć br podczas używania echo, na przykład:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

i będzie działać poprawnie

Maryam Homayouni
źródło
1
To nie zadziała w przypadku dokumentów html
MarcoZen
1
To nie zadziała, gdy
odbijasz
13

Znak nowej linii to \n:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');
noetix
źródło
Jaki jest przedrostek __(dwa podkreślenia)?
Peter Mortensen,
1
@PeterMortensen Jest to funkcja w niektórych frameworkach PHP do obsługi internacjonalizacji. Użył go oryginalny post, dlatego dodałem go do mojej odpowiedzi.
noetix
2

Możesz spróbować \ r \ n dla powrotu karetki / nowego wiersza

Jonathan
źródło
Problem wydaje się być ukośnik, /nvs \n.
Peter Mortensen,