2012-09-13 30 views
8

Vì một số lý do lạ, việc chèn echo "\n"; và các ký tự chuỗi scape khác không hoạt động đối với tôi, đó là lý do tôi chỉ sử dụng <br />.Dòng mới (" n") trong PHP không hoạt động

Hình ảnh về kết quả ví dụ trong sách và các tài liệu khác có vẻ không sao. Tôi hiện đang sử dụng XAMPP và đã được sử dụng WAMPP với cùng một kết quả thực tế. Tại sao vậy?

Edit:

Dường như tôi không thể hiểu được những khái niệm sau khi so sánh câu trả lời của bạn với điều này: PHP Linefeeds (\n) Not Working

Edit:

Xin lỗi tôi đã không nhận ra rằng vào liên kết ở trên là đề cập đến một mã php bằng văn bản cho một tập tin. Tôi tự hỏi tại sao tôi có một vài chương trình mẫu php sử dụng \ n mặc dù nó xuất ra trong một trang web. Cảm ơn mọi người.

+10

Bởi vì bạn đang outputting HTML, và dưới dạng HTML, "\ n" được coi là khoảng trắng? – andrewsi

+0

Tôi muốn nhấn mạnh rằng tôi đang sử dụng dấu ngoặc kép và chúng được nhúng vào trong mã php. Ngoài ra phần mở rộng tập tin tôi sử dụng là .php. – Arman

+1

Trong HTML, một dòng mới chỉ được xử lý như vậy trong một ngữ cảnh có 'khoảng trắng: trước hoặc tương tự (kiểu/hành vi mặc định của phần tử' pre'). Trong các ngữ cảnh HTML khác, một dòng mới được coi là khoảng trắng. – ACJ

Trả lời

19

Khi bạn chạy một tập lệnh PHP trong trình duyệt, nó sẽ được hiển thị dưới dạng HTML theo mặc định. Nếu sách bạn ’ sử dụng lại chương trình khác, thì mã hoặc hình minh họa không chính xác. Bạn có thể sử dụng nguồn xem “ ” để xem nội dung được gửi tới trình duyệt và bạn ’ sẽ thấy rằng nguồn cấp dữ liệu của bạn có sẵn.

<?php 
echo "Line 1\nLine 2"; 
?> 

này sẽ làm trong trình duyệt của bạn như:

Line 1 Line 2 

Nếu bạn cần phải gửi văn bản đơn giản để trình duyệt, bạn có thể sử dụng một cái gì đó như:

<?php 
header('Content-type: text/plain'); 
echo "Line 1\nLine 2"; 
?> 

chí đầu ra này:

Line 1 
Line 2 

PHP Linefeeds (\n) Not Working đang đề cập đến việc gửi đầu ra tới một tệp thay vì trình duyệt.

+0

Một tệp thay vì đầu ra của trình duyệt. Đó là nó! – Arman

+0

Tôi lấy nó vấn đề của bạn đã được cố định? – Herbert

+0

Vâng, nó chỉ là một sự hiểu lầm về bài viết đó, tôi nghĩ. Cảm ơn. – Arman

2

<br /> là thẻ HTML cho dòng mới, trong khi "\ n" là xuất một dòng mới (cho thực).

Trình duyệt không xuất ra dòng mới mỗi khi tệp HTML chuyển sang dòng tiếp theo.

3

Bạn nên tìm kiếm nl2br(). Điều này sẽ thêm ngắt dòng (<br>) vào đầu ra của bạn sẽ được trình duyệt hiển thị; dòng mới không.

1

Bạn có thể sử dụng chức năng để chuyển đổi nl2br\n-<br>

Như đã nói trước đây, HTML không làm \n như dòng mới. Chỉ nhận dạng thẻ html <br>

2

echo "\n" có thể hoạt động, không giống như cách bạn mong đợi.

Lệnh đó sẽ chèn một ký tự dòng mới. Từ âm thanh của nó, bạn đang sử dụng một trình duyệt để xem kết quả của bạn. Lưu ý rằng nếu bạn đã viết một tập tin HTML mà đã có một nội dung cơ thể trông giống như:

<p>This 
is 
a 
test </p> 

Các hiển thị trình duyệt sẽ không bao gồm các dòng mới, và thay vào đó sẽ chỉ hiển thị "Đây là một thử nghiệm"

Nếu bạn muốn xem các dòng mới, bạn có thể xem nguồn và bạn sẽ thấy rằng mã nguồn bao gồm các dòng mới.

Nguyên tắc hàng đầu là nếu bạn cần dòng mới trong trình duyệt, bạn cần phải sử dụng HTML (ví dụ <br />), trong khi nếu bạn muốn nó trong văn bản đơn giản, bạn có thể sử dụng \n

0

Nếu bạn đang làm việc với HTML (xem kết quả trong trình duyệt chẳng hạn), bạn phải sử dụng cách HTML của linebreaks đó là: <br>

Các vấn đề liên quan