Html + BBcode na stronie WWW


(Mrs.Incredibles) #1

Witam 8)

Czy można jakoś pogodzić HTML i BBcode, tak by na stronie HTML móc umieścić pewien skrypt stworzony dla for z BBcode?

po prostu, tak aby HTML automatycznie odczytywał

jako

itd.. ?


(system) #2

W php to zrobisz aby bbcode było zamieniane automatycznie na html.


(Mrs.Incredibles) #3

w jaki sposób?


(Lksstudzionka) #4

nie sprawdzałem tego, ale może ci się przyda- http://bbcode.strefaphp.net/bbcode.php


(Airborn) #5

jak dla mnie wystarczyło by str_replace()


(Mrs.Incredibles) #6

nie znam się na php :x


(Lksstudzionka) #7

http://bbcode.strefaphp.net/opis.php


(Airborn) #8

a wyjaśni mi ktoś jaka jest zaleta preg_replace w porównaniu do str_replace? bo nie do końca rozumiem zwłaszcza, że w manualu jest zaznaczone że w miarę możliwości zaleca się stosowanie str_replace

czyli zamiast

<?php

$str = preg_replace("#\[b\](.*?)\[/b\]#si", "\`", $str);

?>

[/code]
 zrobić coś takiego

[code] <?php $bbcode = array("", ""); $htmlcode = array(" ", ""); $str = str_replace($bbcode, $htmlcode , $str); ?>

zwłaszcza, że w tak zdefiniowanych tablicach bbcode i htmlcode można by zawrzeć od razu znacznie więcej tagów i uprościć kod


(mktos) #9

O ile widzę to preg_replace nie spowoduje, że jezeli użytkownik napisze sam tag pogrubienia, to zostanie zamienione na odpowiedni znacznik i wszystko do końca strony będzie pogrubione...


(Airborn) #10

Nemhein z tym co napisałeś masz oczywiście rację, myślałem, że może jednak jeszcze jakaś zaleta jest.

A to taki mój kod, gdyby ktoś chciał, na końcu zadanego stringu $str domyka otwarte znaczniki

<?

$str = '[b][b][b]string[/b] drugi string, nastepnie bole [b]tekst pogrubiony[/b] koniec [b][b]tekst';

$bbcode = array("[b]", "[/b]");

$htmlcode = array("", "");

$countopen = substr_count($str, '[b]');

$countclose = substr_count($str, '[/b]');

$count = $countopen - $countclose;

if ($count == 0) $str = str_replace($bbcode, $htmlcode , $str);

else if ($count > 0){

	while ($count){

		$str .= '[/b]';

		$count--;

	}

	$str = str_replace($bbcode, $htmlcode , $str);

}

echo $str

?>[/code]

(Mrs.Incredibles) #11

A więc wytłumaczę....

chciał bym zrobić prostą stronę www, na której zamieszczał bym tego typu raporty:

< Gtewr > vs. < Fretta >

Wilkołak - Wampir

[23] Poziom [23]

[37 (+35)] Siła [34 (+36)]

[39 (+43)] Obrona [34 (+40)]

[46] Zwinność [37]

[47] Wytrzymałość [35]

[31] Charyzma [33]

[2.602] Doświadczenie [2.586]

[1.307] Zdrowie [4.296]

[96] Zadane obrażenia [49]

[1.259] Zdrowie [1.200]

Zwyciężył(a): Gtewr - zdobyte złoto: 2.030

BiteRW

(są to raporty generowane przez specjalny skrypt, w pewnej grze internetowej.)

sami widzicie, ze wklejając go tutaj wszystko jest ok, a jest tak dlatego, ze kod raportu wygląda następująco:

< [color=#FFA500]Gtewr[/color] > [color=#C0C0C0]vs.[/color] < [color=#FFA500]Fretta[/color] >

[color=#FFA500]Wilkołak[/color][color=#C0C0C0] - [/color][color=#FFA500]Wampir[/color]

[[color=#FFA500]23[/color] ][color=#C0C0C0] Poziom [/color][[color=#FFA500]23[/color] ]

[[color=#FFA500]37 (+35)[/color] ][color=#C0C0C0] Siła [/color][[color=#FFA500]34 (+36)[/color] ]

[[color=#FFA500]39 (+43)[/color] ][color=#C0C0C0] Obrona [/color][[color=#FFA500]34 (+40)[/color] ]

[[color=#FFA500]46[/color] ][color=#C0C0C0] Zwinność [/color][[color=#FFA500]37[/color] ]

[[color=#FFA500]47[/color] ][color=#C0C0C0] Wytrzymałość [/color][[color=#FFA500]35[/color] ]

[[color=#FFA500]31[/color] ][color=#C0C0C0] Charyzma [/color][[color=#FFA500]33[/color] ]

[[color=#FFA500]2.602[/color] ][color=#C0C0C0] Doświadczenie [/color][[color=#FFA500]2.586[/color] ]

[[color=#FFA500]1.307[/color] ][color=#C0C0C0] Zdrowie [/color][[color=#FFA500]4.296[/color] ]


[[color=#FFA500]96[/color] ][color=#C0C0C0] Zadane obrażenia [/color][[color=#FFA500]49[/color] ]

[[color=#FFA500]1.259[/color] ][color=#C0C0C0] Zdrowie [/color][[color=#FFA500]1.200[/color] ]


Zwyciężył(a): [color=#FFA500]Gtewr[/color] - zdobyte złoto: [color=#FFA500]2.030[/color]


[URL=http://www.biterw.prv.pl/]BiteRW[/URL][/b][/center]

jak widzicie skrypt przystosowany jest do wklejania na fora obsługujące BBcode.

Strona miała by być w HTML-u, tzn: Był by plik: raporty.html

do którego wklejał bym (przez edycje pliku w notatniku) na bieżąco raporty w w.w postaci.

Osobnym zaś plikiem, np.: kod.php był by właśnie kod, zamieniający owe raporty na HTML, tak by było możliwe oglądnie ich poprzez stronę www.


(Ryan) #12

(Fiołek) #13

Należało by napisać skrypt w PHP z użyciem funkcji str_replace lub preg_replace. Jaka jest różnica między tymi funkcjami? A no taka, że str_replace zamienia tekst na tekst, a preg_replace wyrażenie regularne(tekst do niego pasujący) na czysty tekst. Jeśli nie umiesz napisać czegoś takiego to albo się poducz PHP, albo poproś kogoś aby Ci to napisał(mogę ja). Ale raczej ktoś Ci tego za darmo nie napisze.


(Ryan) #14

Matko jedyna...

Tyle że Mrs.Incredibles chce to później i tak wklejać w notatniku do pliku, więc nie ma większego sensu zaprzęgać do tego PHP i wygodniej wykonać to w jakimś języku skryptowym. JS nadaje się doskonale. :wink:

PS.

Napisałem za darmo. :stuck_out_tongue:


(Mrs.Incredibles) #15

Bóg zapłać :slight_smile: działa ;] w razie dalszych pytań będę pisał.

dzięki :wink: