Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML] nl2br daje <br> zamiast <br />
Kyle
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 25.12.2008

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


Albo ja o czymś nie wiem, albo... nie wiem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Kod
$BrainMsg[] = array('date' => $time_date, 'msg' => nl2br($query_show['msg']));

Daje mi w kodzie <br>, a nie <br />...
Co dziwniejsze, myślałem, ze to błąd u mnie z PHP jakiś.
Więc znalazłem w manualu funkcję do tego, zamieniała nl na br, ale w kodzie też było <br>, nawet jeśli w funkcji było <br /> :|
Gdzie mi wycina " /"?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Albo później używasz jakiegoś kretyńskiego kodu, albo masz muzealną wersję PHP z ery krzemu łupanego. Jeśli tak jest, to WSTYD.
Go to the top of the page
+Quote Post
Kyle
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 25.12.2008

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


Uznam, że powyższej odpowiedzi nie było, bo WSTYD %-)

Kod z innej aplikacji jaką napisałem, nie robi <br />, ani u mnie na localhoście z PHP 5.2.8, ani na netlooku...
Kod
$step1_show['oferta'] = nl2br($step1_show['oferta']);

Dalej jest
Kod
echo "coś tam coś tam $step1_show['oferta']";


W tym kodzie, który podałem (jest ze strony, którą piszę teraz) dalej jest przypisywane do zmiennej smarty i nic więcej z tym nierobione.
Go to the top of the page
+Quote Post
ziqzaq
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Nie wiem czego dokładnie próbowałeś (oprócz funkcji z komentarzy w manualu).
1) Próbowałeś jakiegoś czystego skryptu używającego nl2br (sam ciąg znaków + nl2br + echo)?
U mnie poniższy kod daje prawidłowy wynik:
  1. <?php
  2. $txt = "Jakas linia\nNowa linia\nJeszcze jedna";
  3. echo nl2br($txt);
  4. ?>

2) Możesz też spróbować przypisać ręcznie ciąg znaków zawierajcy <br /> do zmiennej Smarty i zobacz czy to nie wina sys. szablonów. Możliwe, że Smarty jakoś escapeuje ci kod.

Jeśli oba sposoby dają poprawne wyniki (czyli to nie wina Smarty ani PHP) to niestety najprawdopodobniej gdzieś kichę odwaliłeś i musisz szukać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Kyle
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 25.12.2008

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


To nie wina Smarty, na stronie bez Smarty też tak mam.
Ten kod, który podałeś daje mi <br />
Czyli to też nie php, a coś co ja robię.

  1. <?php
  2. $query = "SELECT date,msg FROM brainbox ORDER BY id DESC LIMIT 3";
  3.            $query_make = mysqli_query($link, $query);
  4.            while($query_show = mysqli_fetch_assoc($query_make))
  5.                {
  6.                    $BrainMsg[] = array('date' => show_me_time($query_show['date'], 'brainboxout'), 'msg' => nl2br($query_show['msg']));
  7.                }
  8.            
  9.            $smarty -> assign('BrainMsg', $BrainMsg);
  10. ?>


Tak wygląda cały ten fragment kodu od pobrania do przypisania, coś tu źle jest?

Ten post edytował Kyle 28.12.2008, 17:12:57
Go to the top of the page
+Quote Post
ziqzaq
post
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Kurcze sorki, ale jedyne co mi przychodzi do głowy to sprawdzenie (echo) tego $query_show['msg'].
Może tam już są <br> (zapisane w bazie) i dlatego funkcja nl2br nie działa?
Go to the top of the page
+Quote Post
Kyle
post
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 25.12.2008

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


W bazie nie ma br. Jest sam tekst tak jak idzie z formularza.
Teraz zamieniłem to co podałeś wcześniej na wypisywanie zmiennej tablicowej, bo myślałem, że może w tablicach się coś pierdzieli, ale też dało <br />
Już też nie mam żadnego pomysłu w którym miejscu to jest ucinane :/
Szukałem nawet w bugtrack php, nie było niczego takiego.
Go to the top of the page
+Quote Post
ziqzaq
post
Post #8





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Jedyne co mogę polecić to metoda eliminacji.
Jeśli masz php > 4.0.1 to nie ma bata, coś ci siedzi w kodzie.
Wywalaj po kolei niepotrzebne elementy, sprawdź na każdym etapie wykonywania skryptu co dostajesz.
Czyli po odebraniu danych z bazy zrób echo (print_r) tych danych, po użyciu jakichś funkcji to samo, po przypisaniu do Smarty też. Może wrzuciłeś gdzieś jakiś kod i o nim zapomniałeś?
Sprawdź wszystko po x razy bo takie błędy często są trudne do zauważenia.
Życze powodzenia bo ja już nie mam pomysłów. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Edit:
@dół: Spoko, czyli zwykłe przeoczenie - zdarza się. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował ziqzaq 28.12.2008, 19:40:33
Go to the top of the page
+Quote Post
Kyle
post
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 25.12.2008

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


Ehh.. dobra, działa...
Właściwie to działało cały czas... (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)

Odpal ten kod, który podawałeś mi wyżej, ale koniecznie w firefox.
Weź "Pokaż źródło strony" - jest <br />.
Teraz zaznacz ten tekst i weź "Pokaż źródło zaznaczenia".
Mi brak słów... (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
tommy4
post
Post #10





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Dołączył: 2.12.2005

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


Pokaż źródło strony, a pokaż źródło zaznaczenia to dwie różne rzeczy, bo 1 pokazuje kod źródłowy jaki firefox otrzymał od serwera, a 2 pokazuje źródło DOM dokumentu, zmodyfikowane (np. przez AJAX) źródło zaznaczenia. Formatowanie jest także tam inne użyte.

Ten post edytował tommy4 28.12.2008, 18:28:17
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 13:32