¿Cómo eliminar saltos de línea (sin caracteres) de la cadena?

Esto puede parecer una trampa, pero puede estar seguro de que no lo es. He buscado tanto en SO como en el resto de la web para encontrar una respuesta a mi problema y terminé encontrando las mismas "soluciones" insuficientes una y otra vez. De todos modos, aquí va:

Estoy guardando la entrada del usuario desde un área de texto a una base de datos MySQL (dentro de un entorno de WordPress, pero creo que no debería importarle a este problema). Más tarde se recupera de la base de datos para mostrarse a los administradores en el backend del sitio. El problema ocurre cuando los usuarios envían texto con saltos de línea (es decir, presionan la tecla Intro).

Una cadena de muestra podría verse así:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!

Greetings,
Bill

No hay caracteres de final de línea ("\ n", "\ r" o similares) en la cadena.

estoy usandonl2br() en él para generar la salida HTML, pero eso no es suficiente. El resultado entonces es:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill

Que, por lo que yo entiendo, es lo esperado.nl2br() ¿Como resultado, ya que inserta las etiquetas y no se supone que reemplace los saltos de línea en primer lugar?

Sin embargo, el formato que necesito sería este:

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill

Si la cadena tuviera caracteres EOL como "\ n" en ella, la golpearía con cualquiera de los dos.str_replace() opreg_replace() y termine con esto, pero no tengo ni idea de qué aguja alimentar cualquiera de esas funciones si no hay caracteres allí en primer lugar.

Puedo acceder manualmente al campo relevante en la base de datos, presionar Retroceso para cada salto de línea y lo que luego quiero hacer con la cadena funciona. Así que sé que necesito el formato anterior.

Respuestas a la pregunta(9)

Su respuesta a la pregunta