Bu bir dupe gibi görünebilir, ancak emin olun öyle değildir - hem SO'yu hem de web'in geri kalanını sorunuma bir cevap için araştırdım ve aynı yetersiz "çözümleri" defalarca buldum. Her neyse, işte burada:
Bir metin alanından bir MySQL veritabanına kullanıcı girişini kaydediyorum (bir WordPress ortamında, ancak bunun bu sorun için önemli olmaması gerektiğine inanıyorum). Daha sonra sitenin arka ucunda Yöneticilere gösterilmek üzere DB'den alınır. Sorun, kullanıcılar satır sonu içeren metin gönderdiklerinde ortaya çıkar (yani, Enter tuşuna bastığında).
Örnek bir dize şöyle görünebilir:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
Dizede satır sonu karakteri ("\ n", "\ r" veya benzeri) yoktur.
nl2br()
HTML çıktısı oluşturmak için kullanıyorum , ancak bu yeterli değil. Sonuç şu şekilde:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
nl2br()
Etiketleri eklediği ve ilk başta satır sonlarının yerini alması gerekmediği için anladığım kadarıyla beklenen sonuç hangisidir?
Ancak ihtiyacım olan format şu olurdu:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Dizesi böyle "\ n" İçinde, ben de onu vururdu olarak EOL karakterleri olsaydı str_replace()
ya preg_replace()
ve onunla yapılabilir, ancak hiçbir karakter yoksa ne iğne bu işlevlerden birini beslemesine hiçbir ipucu var ilk başta.
Veritabanındaki ilgili alana manuel olarak erişebilirim, her satır sonu için Backspace'e basabilirim ve daha sonra string ile yapmak istediğim işler. Bu yüzden yukarıdaki formata ihtiyacım olduğunu biliyorum.