Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Hmm Spacja ?
Forum PHP.pl > Forum > Przedszkole
bartek4175
Witam!
Mam system newsów, jednak aby przejść do nowej Lini trzeba pisać
  1. <br>

Chciałbym zrobić aby gdy kliknę enter to samo na końcu lini pisało niewidzialne
  1. <br>
czyli ja nie widzę, żę jest br a tak naprawdę jest.

Pomożecie jak to zrobić?
kujol
Zrób system BBCode.
bartek4175
Cytat(kujol @ 31.08.2013, 08:38:03 ) *
Zrób system BBCode.

tylko jak ?
narazie mam:
  1. function bbcode($value)
  2. {
  3. /*zamiast htmlspecialchars()*/
  4. $value = str_replace("<", "&#60 ;", $value);
  5. $value = str_replace(">", "&#62 ;", $value);
  6. /*Pogrubienie tekstu.
  7. Tekst*/
  8. $value = preg_replace("#enter(.*?)#si",'<br>',$value);
  9. }
r4xz
nl2br
kujol
blog.grabowski.ostrowwlkp.pl/webmastering/wlasny-system-bbcode-w-php

Pobrany text z bazy przepuszczasz przez funkcję i gotowe.
nospor
Czlowiek chce zwylką nową linie na enter a Ty mu wyjezdzasz z bbcode... A co mu niby bbcode zalatwi w sprawie nowej linii z entera?? Nic, totalnie nic.

Odpowiedz juz padla nl2br() i po sprawie.
bartek4175
Cytat(nospor @ 31.08.2013, 09:53:34 ) *
Czlowiek chce zwylką nową linie na enter a Ty mu wyjezdzasz z bbcode... A co mu niby bbcode zalatwi w sprawie nowej linii z entera?? Nic, totalnie nic.

Odpowiedz juz padla nl2br() i po sprawie.

taki kod zadziała ?

  1. function br2nl($string)
  2. {
  3. return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
  4. }
nospor
A po co ci br2nl ? Masz uzyc nl2br()... wkoncu chcesz enter na br zamieniac a nie na odwrot.... nl2br masz uzywac tylko przed wyswietlaniem, a nie przed zapisem do bazy.
bartek4175
Cytat(nospor @ 31.08.2013, 09:58:20 ) *
A po co ci br2nl ? Masz uzyc nl2br()... wkoncu chcesz enter na br zamieniac a nie na odwrot.... nl2br masz uzywac tylko przed wyswietlaniem, a nie przed zapisem do bazy.

a ten kod:
  1. $message = nl2br(preg_replace('#(\\]{1})(\\s?)\\n#Usi', ']', stripslashes($message)));
nospor
No to sprawdz, bedziesz wiedzial czy dziala czy nie.... nl2br zamienia enter na br (a konkretnie dopisuje br). wiec skoro odpalasz nl2br to zrobi co ma zrobic, wiec pytanie "czy zadziala" jest dosc dziwne.
bartek4175
Cytat(nospor @ 31.08.2013, 10:04:18 ) *
No to sprawdz, bedziesz wiedzial czy dziala czy nie.... nl2br zamienia enter na br (a konkretnie dopisuje br). wiec skoro odpalasz nl2br to zrobi co ma zrobic, wiec pytanie "czy zadziala" jest dosc dziwne.

w bazie jest: http://scr.hu/0m87/qtcn6

a wyświetla: http://scr.hu/0m87/ul5rk
nospor
Widac albo nie masz tam enterow, albo w zlym miejscu wstawiasz te nl2br albo tymi swoimi preg_replacami kasujesz entery i nl2br nie ma co zamieniac. Ta funkcja na 100% dziala.

zrob var_dump to bedziesz wiedzial na czym dzialasz
bartek4175
Cytat(nospor @ 31.08.2013, 10:13:20 ) *
Widac albo nie masz tam enterow, albo w zlym miejscu wstawiasz te nl2br albo tymi swoimi preg_replacami kasujesz entery i nl2br nie ma co zamieniac. Ta funkcja na 100% dziala.

zrob var_dump to bedziesz wiedzial na czym dzialasz

dałem:
  1. var_dump($news['tresc']);


i wyświetla: string(46) "1 linijka! 2 linijka! 3 linijka! 4 linijka!"
nospor
wyswietl zrodlo strony.... czy te linijka linijka sa wowczas nowej linii? Jak nie, znaczy ze nie masz tam enterow
bartek4175
Cytat(nospor @ 31.08.2013, 10:24:18 ) *
wyswietl zrodlo strony.... czy te linijka linijka sa wowczas nowej linii? Jak nie, znaczy ze nie masz tam enterow

nl2br(preg_replace('#(\\]{1})(\\s?)\\n#Usi', ']', stripslashes($news['tresc'])));
ten kod mam w index i nie są w nowej lini a na pewno są entery bo w bazie jest ok tylko źle wyświetla
nospor
Wywal te preg_replace, zostaw samo nl2br
Jesli nadal nie ma nowych linii, znaczy robisz to w zlym miejscu lub bardzo nieumiejetnie. Niestety nic wiecej na podstawie takich informacji lepszego ci nie powiem
kujol
Cytat
A co mu niby bbcode zalatwi w sprawie nowej linii z entera??


Link do strony, który mu podałem zawiera gotowy bbcode z nl2br. Mając system newsów bbcode na pewno mu się przyda wink.gif

Kod
<?php

function bbcode($tekst)
{
$tekst = str_replace("<", "&#60;", $tekst);
$tekst = str_replace(">", "&#62;", $tekst);
$tekst = preg_replace("#\[b\](.*?)\[/b\]#si",'<b>\\1</b>',$tekst);
$tekst = preg_replace("#\[i\](.*?)\[/i\]#si",'<i>\\1</i>',$tekst);
$tekst = preg_replace("#\[u\](.*?)\[/u\]#si",'<u>\\1</u>',$tekst);
$tekst = preg_replace("#\[p\](.*?)\[/p\]#si",'<p>\\1</p>',$tekst);
$tekst = preg_replace("#\[img](.*?)\](.*?)\[/img\]#si",'<img src="\\1" alt="\\2" />',$tekst);
$tekst = preg_replace("#\[url\](http.*?)\[/url\]#si", "<A HREF=\"\\1\">\\1</A>", $tekst);
return nl2br($tekst);
}

$value = "TUTAJ JAKIS TEKST 1 i JAKIS TEKST 2;

$wynik = bbcode($value);

echo "$wynik";

?>


tekst 1 i 2 oddziel 'enterem' a zobaczysz efekt. biggrin.gif
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.