Jak usunąć znaki podziału wiersza (bez znaków!)?
Może to wydawać się dupkiem, ale możesz mieć pewność, że tak nie jest - szukałem zarówno SO, jak i reszty internetu, aby znaleźć odpowiedź na mój problem i wciąż znajdowałem te same niewystarczające „rozwiązania”. Tak czy inaczej, tu idzie:
Zapisuję dane użytkownika z pola tekstowego do bazy danych MySQL (w środowisku WordPress, ale uważam, że nie powinno to mieć znaczenia dla tego problemu). Później jest pobierany z bazy danych, aby pokazać go administratorom w zapleczu witryny. Problem występuje, gdy użytkownicy przesyłają tekst z podziałem na wiersze (tzn. Naciskają klawisz Enter).
Przykładowy ciąg znaków może wyglądać tak:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
W łańcuchu nie ma znaków końca linii („n”, „r” itp.).
ja używamnl2br()
na nim, aby wygenerować wyjście HTML, ale to nie wystarczy. Wynik jest wtedy:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
O ile mi wiadomo, jest to oczekiwanenl2br()
wynik, ponieważ wstawia znaczniki i nie ma w ogóle zastępować podziałów linii?
Potrzebny byłby jednak format:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Gdyby łańcuch zawierał znaki EOL, takie jak „n”, trafiłbym na niestr_replace()
lubpreg_replace()
i skończcie z tym, ale nie mam pojęcia, jaką igłę nakarmić którąkolwiek z tych funkcji, jeśli w ogóle nie ma tam żadnych postaci.
Mogę ręcznie uzyskać dostęp do odpowiedniego pola w DB, nacisnąć Backspace dla każdego łamania wiersza i to, co później chcę zrobić z ciągiem, działa. Wiem więc, że potrzebuję powyższego formatu.