Zamiana \n na <br>

0

Witam. Ogólnie wiem jak to zrobić korzystam z funkcji nl2br. Chodzi o to, że jak dokonuję takiej konwersji to zamiast jednej zmiany linii dodają mi się dwa znaczniki
i nie bardzo wiem skąd to się bierze :/ przez co mój tekst ma obrzydliwie duże odstępy między liniami. Z góry dzięki za podpowiedź.

Pozdrawiam

0

Może przez to, że zwyczajowo w tekście nowa linia to \r\n ? Czyli dwa znaki.

0

Sprawdziłem to usuwając wszystkie \r i dalej to samo :/

EDIT: heh zapomniałem dodać, że oczywiście zapisuję ten tekst do bazy a dopiero później wyświetlam. Czyli w skrócie biorę tekst obrabiam go później nl2br i do bazy. Przy wyświetlaniu w/w problem. Już w bazie siedzą podwójne
. Sprawdziłem

0

To nie zamieniaj nlów na BR i zobacz co sie stanie :P

0

Wyświetla mi bez nowych linii. Zamiast nich są spację a ja potrzebuje tych nowych linii :p

0

Możesz splitnąć na \n i objąć <p></p> - ale to niekoniecznie musi być to co chcesz.
Podaj może tekst który zamieniasz i kod, którym to robisz. Najlepiej, żeby to był kompletny przykład, jak najmniejszy a reprezentujący problem.
http://pscode.org/sscce.html

0

ale nie musisz chyba usuwać istniejących \n czy tam \r? wystarczy dodawać na końcu każdej linii <br>.

0

Dobra no to proszę na prostym przykładzie (robie w ci):

  1. Wpisuje w textarea:
    1 linia
    2 linia
    3 linia
  2. wysyłam postem formularz
  3. w skrypcie robię:
    INSERT INTO tabela (..., $text, ...) VALUES (..., $this->input->post('text'), ...)
  4. następnie przy wyświetlaniu tekstu w textarea i zrobieniu wcześniej nl2br mam:
    1 linia

2 linia

3 linia
5. przy wyświetlaniu bez textarea i zrobieniu nl2br mam to samo.
6. jeżeli przed zapisem do bazy zrobię:
str_replace("\r\n", "", $moj_tekst) to później przy wyświetlaniu w textarea mam dobrze czyli tak jak chce:
1 linia
2 linia
3 linia
7. przy wyświetlaniu nie w textarea za to mam źle:
1 linia2 linia3 linia
8. jak zrobię nl2br to nic nie daje bo nie mam znaku nowej linii. więc dlaczego textarea robi mi nowe linie?

Pozdrawiam

2

Dlatego poprosiłem o kod, a nie opis. ;) Może zapisz sobie do pliku tekst zaraz przed włożeniem go do bazy i otwórz w hexedytorze, zobacz co tam dokładnie masz. Zrób to samo również zaraz po jego wyciągnięciu z bazy.

0

Dobra tego mi było trzeba. Dzięki :) Okazuje się, że przy zapisie mam tam:
1 linia\r\n\n2 linia
O_o tylko nie potrafię pojąć dlaczego no ale cóż już zrobiłem trochę na około ale działa. Jeszcze raz dzięki.

Pozdrawiam

0

string newText = oldText.Replace( Environment.NewLine, "<br>" );

0 użytkowników online, w tym zalogowanych: 0, gości: 0