Điều này có vẻ như là một bản sao, nhưng yên tâm là không - tôi đã tìm kiếm cả SO cũng như phần còn lại của web để tìm câu trả lời cho vấn đề của mình và cuối cùng tìm thấy "giải pháp" không đủ. Dù sao đi nữa, nó đi:
Tôi đang lưu dữ liệu đầu vào của người dùng từ textarea vào cơ sở dữ liệu MySQL (trong môi trường WordPress, nhưng điều đó không quan trọng đối với vấn đề này, tôi tin vậy). Sau đó, nó được lấy từ DB để hiển thị cho Quản trị viên trong phần phụ trợ của trang web. Sự cố xảy ra khi người dùng gửi văn bản có ngắt dòng (tức là nhấn phím Enter).
Một chuỗi mẫu có thể trông như thế này:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
Không có kết thúc của các ký tự dòng ("\ n", "\ r" hoặc tương tự) trong chuỗi.
Tôi đang sử dụng nl2br()
nó để tạo đầu ra HTML, nhưng điều đó là không đủ. Kết quả sau đó là:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
Theo như tôi hiểu thì đó là nl2br()
kết quả mong đợi , vì nó chèn các thẻ và không được phép thay thế các ngắt dòng ở vị trí đầu tiên?
Tuy nhiên định dạng tôi cần sẽ là:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Nếu chuỗi có các ký tự EOL như "\ n" trong đó, tôi sẽ đánh nó bằng hoặc str_replace()
hoặc preg_replace()
được thực hiện với nó, nhưng tôi không biết kim nào để cung cấp một trong hai chức năng đó nếu không có ký tự nào ở đó ở nơi đầu tiên
Tôi có thể truy cập thủ công vào trường có liên quan trong DB, nhấn Backspace cho mỗi lần ngắt dòng và những gì sau này tôi muốn làm với chuỗi hoạt động. Vì vậy, tôi biết tôi cần định dạng trên.