![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
przy oprogramowywaniu BBCodu pojawił mi się niezbyt ciekawy problem... Przy niektórych tagach konieczne jest aby wszelkie tagi w nim nie były przetwarzane, przykładem takiego tagu może być chociażby [code]. Myślałem nad tym aby po prostu wywołać funkcję preg_replace_callback co dopasuje wszystkie takie tagi i pozamienia w ich zawartości wszelkie [ i ] na ich HTML-owe odpowiedniki &~; No tylko problem jest jak to dopasować... <code>#\(.*?)\#i</code> Dopasuje mi pierwsze rozpoczęcie tagu [ b] i pierwsze pojawiające się zamknięcie, więc jeżeli zagnieździmy tagi w ten sposób: [ b]asd[ b]asd[ /b]asd[ /b] to to wszystko szlag trafi Drugie co wymyśliłem to: <code>#\(.*)\#i</code> Ale w końcu wyszło, że jeżeli kod wygląda tak: [ b]asd[ /b] asd [ b] asd [ /b] to zamieni 1sze i ostatnie wystąpienie, czyli uzyskam coś w stylu < b>asd [ /b] asd [ b ] asd < /b> Już dobre parę godzin nad tym siedzę i oprócz wyrażeń regularnych próbuję coś wymyśleć z funkcjami do obsługi tekstu z serii ~str~ ale nic mi nie wychodzi. Jak to można rozwiązać? W wyrażeniach regularnych to ja jestem ciemny i żadne manuale mnie nie zbawiły. Z góry dziękuję za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
PEAR HTML_BBCodeParser się kłania
![]() -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Moj bbcode tak wyglada ale nie wiem dlaczego nie dodaje buziek
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie dodaje Ci, bo parametru src nie podaje się w nawiasach ' lecz "...
Ten post edytował Snowak 13.12.2007, 21:53:12 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Jak?Nie rozumiem mozesz to pokazac na moim kodzie?
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zamień np. <img src='tongue.gif' /> na <img src="tongue.gif" />
Niektóre przeglądarki mają problem z tego typu nawiasami. A może po prostu zły adres emotki podajesz... A tak w ogóle to ta Twoja funkcja trochę dziwnie wygląda, zmienna $zmien bierze się znikąd ![]() A co do tego PEAR HTML BBCode Parsera - próbowałem na jego podstawie coś napisać ale nic mi z tego nie wyszło, za bardzo mija się z moimi założeniami. Wygląda na to, że następne parę dni spędzę na monotonnym pisaniu parsera od 0 ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Ok zaraz zobacze a funckja jest normalna paramtr sie daje jak chce sie cos dynamicznie zmienic a funckje tak wywoluje
wszystkie tagi dzialaja oprocz emotek i chyba masz racje czemu nie dzialalo ok juz buzki dzialaja ale nie chodzilo o "" bo tak jest zbudowane str_replace lecz o \\ przed url emotki -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda na to, że następne parę dni spędzę na monotonnym pisaniu parsera od 0 ![]() Zaglądnij tutaj -> http://forum.php.pl/index.php?showtopic=13425&hl=bbcode może nie będziesz musiał się męczyć ![]() -------------------- $email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) { // Houston, we have a problem.... } |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Już dawno go napisałem
![]() [ABC a=1 b='2' ten tekst nie zostanie przetworzony c="3"]asd[/ABC] Wszystkie tagi są zamykane w odpowiednim miejscu tak że powstaje kod zgodny ze wszelkimi standardami XHTMLa, można wybrać czy wewnątrz danego tagu parsować następne tagi i emotki. A wszystkie tagi zamiast być opisane przez wyrażenia regularne, są opisane przez kod PHP który można dynamicznie edytować przy każdym tagu w panelu admina co daje praktycznie nieskończone możliwości ![]() Ten post edytował Snowak 16.12.2007, 13:21:31 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 14:33 |