Ini mungkin tampak seperti sebuah penipuan, tetapi yakinlah tidak - saya telah mencari SO dan juga seluruh web untuk jawaban atas masalah saya dan akhirnya menemukan "solusi" yang sama tidak cukup berulang-ulang. Bagaimanapun, ini dia:
Saya menyimpan input pengguna dari textarea ke database MySQL (dalam lingkungan WordPress, tapi itu tidak masalah bagi masalah ini, saya percaya). Ini kemudian diambil dari DB untuk ditampilkan ke Admin di backend situs. Masalah terjadi ketika pengguna mengirim teks dengan jeda baris (yaitu tekan tombol Enter).
Contoh string mungkin terlihat seperti ini:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
Tidak ada karakter garis akhir ("\ n", "\ r", atau sejenisnya) dalam string.
Saya menggunakannya nl2br()
untuk menghasilkan output HTML, tapi itu tidak cukup. Hasilnya kemudian adalah:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
Yang, sejauh yang saya mengerti, adalah nl2br()
hasil yang diharapkan , karena hal itu menyisipkan tag dan tidak seharusnya menggantikan jeda baris di tempat pertama?
Namun format yang saya butuhkan adalah sebagai berikut:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Jika string memiliki karakter EOL seperti "\ n" di dalamnya, saya akan memukulnya dengan baik str_replace()
atau preg_replace()
selesai, tetapi saya tidak tahu jarum apa yang harus dimasukkan ke salah satu fungsi tersebut jika tidak ada karakter di sana. di tempat pertama.
Saya dapat secara manual mengakses bidang yang relevan di DB, tekan Backspace untuk setiap linebreak dan apa yang nanti saya ingin lakukan dengan string berfungsi. Jadi saya tahu saya perlu format di atas.