Làm cách nào để thêm dấu ngắt dòng trong echo trong PHP? [đóng cửa]


92

Tôi đang cố gắng thêm dấu ngắt dòng cho một câu và tôi đã thêm /n vào mã sau.

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;

Vì một số lý do, kết quả là tôi gặp lỗi máy chủ. Làm thế nào để tôi sửa nó?


4
sử dụng dấu gạch chéo ngược, đây không phải là ký tự thoát đúng cách \n. Tuy nhiên, lỗi máy chủ không liên quan đến thử này, nhìn vào apache log và kiểm tra __(arg)docu
Marek Sebera

1
Chào mừng bạn đến với Stackoverflow. Vui lòng làm theo lời khuyên mà bạn cần để xác nhận trước khi đăng bất kỳ câu hỏi nào . Hãy nhớ rằng chỉ bạn muốn thứ gì đó và bạn tự hỏi bản thân xem nó được lập trình như thế nào thì không đủ tiêu chuẩn là một câu hỏi lập trình.
hakre 21/10/12

Câu trả lời:


255

\nlà ngắt dòng. /nkhông phải.


sử dụng \nvới

1. echo trực tiếp đến trang

Bây giờ nếu bạn đang cố gắng lặp lại chuỗi tới trang:

echo  "kings \n garden";

đầu ra sẽ là:

kings garden

bạn sẽ không nhận được gardendòng mới bởi vì PHP là ngôn ngữ phía máy chủ và bạn đang gửi đầu ra dưới dạng HTML, bạn cần tạo ngắt dòng trong HTML. HTML không hiểu \n. Bạn cần sử dụng nl2br()chức năng cho điều đó.

Những gì nó làm là:

Trả về chuỗi có <br />hoặc <br>được chèn trước tất cả các dòng mới (\ r \ n, \ n \ r, \ n và \ r).

echo  nl2br ("kings \n garden");

Đầu ra

kings
garden

Lưu ý Đảm bảo rằng bạn đang lặp lại / in \ntrong dấu ngoặc kép, nếu không nó sẽ được hiển thị theo nghĩa đen là \ n. vì chuỗi php thông dịch viên phân tích trong báo duy nhất với khái niệm như là

so "\n" not '\n'

2. ghi vào tệp văn bản

Bây giờ nếu bạn lặp lại tệp văn bản, bạn có thể sử dụng ngay \nvà nó sẽ lặp lại sang một dòng mới, như:

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

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

đầu ra sẽ là:

kings
 garden

1
Đang chờ đợi ở trên. Điều này hoạt động - ví dụ -> echo "<html>". "\ N"; hoặc echo "khu vườn vua". "\ n"; mà thêm một dấu ngắt dòng sau dòng đầu tiên. Google đã dẫn tôi đến đây khi tôi muốn thêm dấu ngắt dòng sau tiếng vọng.
MarcoZen

18

Bạn phải sử dụng br khi sử dụng echo, như sau:

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

và nó sẽ hoạt động bình thường


1
Điều đó sẽ không hoạt động đối với tài liệu html
MarcoZen

1
Rằng công việc sẽ không khi bạn đang lặp lại chúng trong một tập tin ngôn ngữ php / server side
MarcoZen

13

Ký tự dòng mới \ngiống như sau:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');

Tiền tố __(hai dấu gạch dưới) là gì?
Peter Mortensen

1
@PeterMortensen Nó là một chức năng trong một số khuôn khổ PHP để hỗ trợ quốc tế hóa. Bài viết gốc đã sử dụng nó, đó là lý do tại sao tôi thêm nó vào câu trả lời của mình.
noetix

2

Bạn có thể muốn thử \ r \ n để xuống dòng / nguồn cấp dữ liệu dòng


Vấn đề có vẻ là dấu gạch chéo, /nvs \n.
Peter Mortensen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.