2008-11-14 57 views

Trả lời

34

Hãy xem hàm nl2br(). Nó nên làm chính xác những gì bạn muốn.

9

Chức năng nl2br() tồn tại để thực hiện chính xác này:

Tuy nhiên, chức năng này cho biết thêm thẻ BR nhưng không thực sự loại bỏ các dòng mới - điều này thường không phải là một vấn đề, nhưng nếu bạn muốn hoàn toàn lột họ và bạn cũng nên sử dụng số điện thoại str_replace hoặc preg_replace

Tôi nghĩ rằng str_replace sẽ nhanh hơn một chút nhưng tôi chưa được đo điểm chuẩn;

$val = str_replace(array("\n","\r","\r\n"), '<br />', $val); 

hoặc

$val = preg_replace("#\n|\r|\r\n#", '<br />', $val); 
5

Nếu bạn đang đi để sử dụng str_replace hoặc preg_replace, có lẽ bạn nên đặt "\r\n" vào đầu của mảng, nếu không một chuỗi \r\n sẽ được dịch sang hai <br/> thẻ (kể từ khi \r sẽ được khớp, và sau đó \n sẽ được khớp).

ví dụ:

$val = str_replace(array("\r\n", "\n","\r"), '<br />', $val); 

hoặc

$val = preg_replace("#\r\n|\n|\r#", '<br />', $val); 
0

Đối với những người muốn một câu trả lời mà không dựa vào nl2br():

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

hoặc (trong trường hợp này):

$newList = ereg_replace("\n",'<br/>', $_POST['theTextareaContents']); 

PHP Side: từ chuỗi Textarea cho PHP chuỗi

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

PHP Side: PHP chuỗi lại chuỗi TextArea:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']); 
Các vấn đề liên quan