![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
Witam. Przysiadłem nad funkcją do zamiany BBCode na HTML, którą kiedyś na szybko napisałem, a która nie była pozbawiona wad. Oto wersja 2.0 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Proszę testować i zgłaszać błędy.
Możliwe BBCode'y: Kod [url]www.adres.pl[/url] [url]http://www.adres.pl[/url] [url=www.adres.pl]text[/url] [url=http://www.adres.pl]text[/url] [url=https://www.adres.pl]text[/url] [url]https://www.adres.pl[/url] [url=ftp://ftp.adres.pl]text[/url] [url]ftp://ftp.adres.pl[/url] [img]http://www.adres.pl/image.xxx[/img] [img=http://www.adres.pl/image.xxx][/img] [color=kolor]text[/color] [b]text[/b] [i]text[/i] [u]text[/u] [font=kroj_czcionki]text[/font] [table] element 1 | element2 | element3 element 4 | element5 | element6[/table] [ul][li]element1[/li] [li]element2[/li][/ul] Oczywiście można też samemu dorobić odpowiednie BBCode'y (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Definicja funkcji: string <span style="font-weight: bold;">bb2html</span>( string ) Ten post edytował BzikOS 24.08.2006, 12:22:47 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
jako, że jestem początkujący w wyrażeniach regularznych a php co najwyżej średnio kumaty pozwoliłem sobie zmienić trochę funkcję Autora
postanowiłem ją trohę zmodyfikować tak aby można było podawać klasy stylów CSS żeby np była taka możliwość ]url style=styl[odnośnik do strony]/url[ ]url=link style=styl[nazwa odnosnika]/url[ i takie coś mozna dodawać przy adresach, listach <ul><ol>, img itd itd naiwasy powinny być odwrócone, ale to tylko tak aby tego nie zmieniło na html i zrobiłem takie coś
i teraz pojawił się taki problem 1 - po dodaniu tego stylu musiałem w wyrażeniu reguralnym "#\[($marker)+[=]?(http|https|ftp+://)?(.[^]]*?)?\s*?((style|class)+[=]?(.[^]]*?)?)?\](http|https|ftp+://)?(.[^]]*?)?\[\/$marker]#si" dac takie ograniczniki 2 - po ich dodaniu gdy sa zagnieżdzenia BBCode jeśli wewnętrzny BBCode nie był zmieniony wykrzaczał się wewnętrzy 3 - obejście tego to powtórzenie wszystkiego tyle razy ile znaków BBCode jest w bazie Co prawda jest to rozwiązanie - jakieś - ale mam takie pytanie jak skostruować wyrażenie regularne aby z jednej strony była zachoawna możliwośc umieszczania styli a z drugiej aby nie trzeba było robić tej petli for W wyrażeniach reguralnych raczej jestem słaby i to taka moja pierwsza próba, która bardziej była rowzwinieciem już istniejącego rozwiazania niż własnym pomysłem - próbowałem jakoś robić to inaczej, ale nie wychodziło - jedynie w taki sposób działa jakby ktoś miał jakiś pomysł to byłbym wdzieczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 10:46 |