Це може здатися дурпом, але будьте впевнені, що це не так - я шукав відповіді на свою проблему як в іншому, так і в решті Інтернету, і в кінцевому підсумку знаходжу ті самі недостатні «рішення» знову і знову. Як би там не було:
Я зберігаю дані користувача з текстової області в базі даних MySQL (в середовищі WordPress, але це не повинно мати значення для цієї проблеми). Пізніше його витягують із БД, який буде показаний адміністраторам у вихідному центрі сайту. Проблема виникає, коли користувачі надсилають текст із розривами рядків (тобто натискають клавішу Enter).
Зразок рядка може виглядати приблизно так:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
У рядку немає символів кінця рядків ("\ n", "\ r" тощо).
Я використовую nl2br()
на ньому для створення вихідного HTML, але цього недостатньо. Результат тоді:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
Який, наскільки я розумію, це очікуваний nl2br()
результат, оскільки він вставляє теги і не повинен замінювати перерви рядків в першу чергу?
Однак потрібний мені такий формат:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Якщо рядок мала символи EOL , такі як «\ п» в ньому, я б вдарив його або str_replace()
або preg_replace()
і зробити з неї, але я поняття не маю , які голки для подачі якого з цих функцій , якщо там немає жодного символу там на першому місці.
Я можу вручну отримати доступ до відповідного поля в БД, натиснути Backspace для кожного рядка рядка, і те, що пізніше я хочу зробити зі струнними роботами. Тому я знаю, що мені потрібен вищевказаний формат.