Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt z bazy danych bez przejścia do następnej link
Forum PHP.pl > Forum > Bazy danych > MySQL
xamrex
Witam
Mam na stronie możliwość dodawania kawałów i jeśli ktoś dodaje kawał to jest funkcja nl2br.
I w bazie mam treść kawału taką:
  1. Spotyka się trzech facetów.Pierwszy mówi: <br />
  2. - Wiecie co znalazłem za łóżkiem mojej córki? Papierosy...nie wiedziałem że pali!! <br />
  3. Na TO drugi: <br />
  4. - TO nic! Ja znalazłem za łóżkiem mojej córki butelkę... Nie wiedziałem że pije!! <br />
  5. A trzeci facet mówi: <br />
  6. - Eee... TO nic! Ja za łóżkiem mojej córki znalazłem prezerwatywę... Nie wiedziałem że ma penisa!!


Dzięki czemu na stronie kawał ładnie się wyświetla.

Ale ja chcę aby wszystko było w jednej linii(na podstawie tego będę generował Meta Description)
Myślałem, że można użyć funkcji preg_replace (aby pozbyć się <br />)

Ale nawet po ręcznym usunięciu znaczników <br /> dalej są "przejścia do następnego wiersza"
Czyli coś takiego:
  1. Spotyka się trzech facetów.Pierwszy mówi:
  2. - Wiecie co znalazłem za łóżkiem mojej córki? Papierosy...nie wiedziałem że pali!!
  3. Na TO drugi:
  4. - TO nic! Ja znalazłem za łóżkiem mojej córki butelkę... Nie wiedziałem że pije!!
  5. A trzeci facet mówi:
  6. - Eee... TO nic! Ja za łóżkiem mojej córki znalazłem prezerwatywę... Nie wiedziałem że ma penisa!!


Musiałbym jeszcze usunąć te 2 (niewidoczne) znaki:

Ale jak to zrobić?

W jaki sposób mogę wyświetlać ten kawał w jednej linii?
phpion
chop
xamrex
Nie potrafię chyba skorzystać z tej funkcji ;(
Robię coś takiego:
  1. $wynik = mysql_query("select poem from nuke_poems WHERE poemid = 7");
  2. $tresc = mysql_result( $wynik, 0) ;
  3. $trescf = chop($tresc, "\n");

a mimo to nadal są przejścia do nowej linii ;(
Co robię źle?
zegarek84
nie usuwasz na końcu <br /> a to nie to samo co \n.... jeszcze jeśli masz tu wiersz w osobnych liniach w bazie to możesz skorzystać z rtrim
  1. $wynik = mysql_query("select poem from nuke_poems WHERE poemid = 7");
  2. $tresc = mysql_result( $wynik, 0) ;
  3. $trescf = str_replace('<br />','',$tresc);

xamrex
te <br /> usunąłem ręcznie (bo wiedziałem,że da się to zrobić str_replace),
Al po usunięciu <BR /> nadal wyświetlał się w nowym wierszu.


Idę się pobawić z tym rtrim
zegarek84
poszukaj gdzie w kodzie masz funkcję nl2br - może nawet przy dodawaniu do bazy tekstu - jesteś święcie przekonany, że w bazie masz bez <br /> podczas gdy tak może nie być...
a i jeszcze jedno '<br />'!=='<BR />'
WIĘC:
Kod
$wynik = mysql_query("select poem from nuke_poems WHERE poemid = 7");  
$tresc = mysql_result( $wynik, 0);
$trescf = str_replace(array('<br />','<BR />'),'',$tresc);

xamrex
w bazie mam z <br /> (Patrz obrazek)
i mam zawsze <br /> więc <BR /> nie jest mi potrzebne.

Trzeci raz daję już obrazek!

Mam jeszcze w bazie oprócz kodu <br /> "normalny ENTER" (jest on zaznaczony na czerwono)
Pierwsze zaznaczenie to 'SPACJA' a drugie to właśnie ten 'ENTER' i chciałbym się dowiedzieć jak go usunąć,
Tak jak napisałeś idę się pobawić z funkcją rtrim

EDITED:
Mam coś takiego
  1. $wynik = mysql_query("select poem from nuke_poems WHERE poemid = 1");
  2. $tresc = mysql_result( $wynik, 0) ;
  3. $trescf = str_replace('<br />','',$tresc);
  4. $trescg = Rtrim($trescf,"\n");
  5. echo $trescg;

Ale mimo to dalej nie działa ;(
W przeglądarce wszystko jest w jednej linii (gdyż nie ma <br />) ale w źródle jest z przejściami do nowej linii.

Co robię źle?
zegarek84
enterów jest kilka rodzai - zależy jaki system, windows to bodajże \r\n, linux \r a mac \n
na obecny kod wystarczy jak będziesz miał:
Kod
$wynik = mysql_query("select poem from nuke_poems WHERE poemid = 1");  
$tresc = mysql_result( $wynik, 0);
$trescf = str_replace('<br />','',$tresc);
$trescg = rtrim($trescf,"\r\n");
echo $trescg;

lub
Kod
$wynik = mysql_query("select poem from nuke_poems WHERE poemid = 1");  
$tresc = mysql_result( $wynik, 0);
$trescf = str_replace(array('<br />',"\r","\n"),'',$tresc);
echo $trescg;

xamrex
Drugi sposób działa smile.gif
Wielkie dzięki
toel
Hmm...a strip_tags nie załatwił by sprawy szybciej ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.