Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odwrotność l2br()
Malvegil100
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 15.10.2008

Ostrzeżenie: (0%)
-----


Wiec kiedy uzytkownik uzytkownik wpisuje tresc i uzywa ENTER wykorzystalem zmienna która zmienia to na <br />:

  1. <?php
  2. function nl2br2($string) {
  3. $string = str_replace(array("r\n", "r", "\n"), "<br />", $string);
  4. return $string;
  5. }
  6. ?>


Jedna teraz, kiedy uzytkownik chce zedytowac to co napisal wychodzi takie cos:

To jest temat do testów<br /><br />//Nie pisz glupot
(tresc przypadkowa)

Po prostu gubią się przerwy miedzy tekstami które zastępowane sa <br />. Jak teraz odwrócic ten proces żeby było to widoczne
tak jak wcześniej czyli:

To jest temat do testów

//Nie pisz glupot
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Jest pozno wiec moze powiem jakas bombe ale chyba htmlspecialchars()


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
l0ud
post
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Po pierwsze: nl2br powinno się używać tylko bezpośrednio przed wyświetleniem tego tekstu. Zapis do pliku/bazy powinien być w niezmienionej formie (i wtedy taki problem nie wystąpi).

Mimo wszystko, zawsze możesz zrobić tak:
  1. <?php
  2. $string = str_replace('<br />', "\n", $string);
  3. ?>


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Malvegil100
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 15.10.2008

Ostrzeżenie: (0%)
-----


Wszystko pięknie ale teraz mam następujący problem:

To jest temat testowy<br /><br />//Nie pisz głupot

Jeśli chciałbym to zedytować ponownie wychodzi takie coś:

To jest temat testowy<br /><br /><br />//Nie pisz głupot

I kolejny

To jest temat testowy<br /><br /><br /><br />//Nie pisz głupot.

Jak się tego pozbyć?
Go to the top of the page
+Quote Post
l0ud
post
Post #5





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Nie rozumiem. Po edycji dodają się te znaczniki? Czy w polu formularza edycji jest właściwa ilość linii, czy dodają się jakieś?


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Malvegil100
post
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 15.10.2008

Ostrzeżenie: (0%)
-----


Przy każdorazowej edycji dodają się znaczniki <br />.
Go to the top of the page
+Quote Post
l0ud
post
Post #7





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


A czy użwasz nl2br() czy tej swojej nl2br2()? Jeżeli nl2br() to używaj tej drugiej.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Malvegil100
post
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 15.10.2008

Ostrzeżenie: (0%)
-----


Ok pomogło, bardzo dziękuje za pomoc.
Go to the top of the page
+Quote Post
misiek172
post
Post #9





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


ja używam takiej funkcji:

  1. <?php
  2. function nltobr($var, $xhtml = FALSE)
  3.    {
  4.        if($var){
  5.            if($xhtml == FALSE){
  6.                $array = array("r\n", "\nr", "\n", "r");
  7.                $var = str_replace($array, "<br>", $var);
  8.                return $var;
  9.            }
  10.            else{
  11.                $array = array("r\n", "\nr", "\n", "r");
  12.                $var = str_replace($array, "<br />", $var);
  13.                return $var;
  14.            }
  15.        }
  16.        else{
  17.            return FALSE;
  18.        }
  19.    }
  20. ?>


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:53