![]() |
![]() |
-Trejder- |
![]() ![]()
Post
#1
|
Goście ![]() |
Witam,
Chcę dodać do swojego skryptu prosty mechanizm obsługi pseudo-tagów, podobnie jak w przypadku BBCode. Zastosowałem jedno z rozwiązań dostępnych w Internecie, ale jego kod jest dla mnie zbyt zagmatwany, żebym umiał rozszerzyć jego funkcjonalność do takiego poziomu, jaki jest mi potrzeby. W zasadzie to interesuje mnie tylko jedna rzecz - jedna funkcja. Na wejściu (w tekście wprowadzanym przez użytkownika) jest coś takiego: Kod [lbimg]plik_maly|plik_duzy|podpis|orientacja[/lbimg] Chciałbym, żeby na wyjściu (na wyświetlanej stronie, tudzież w tym, co zwraca funkcja, której poszukuję) powyższy kod został zamieniony na: Ponieważ w moim pseudo-tagu występują parametry, więc sądzę, że zwykła - jednolinijkowa funkcja wykorzystująca wyrażenia regularne tu nie wystarczy. Próbowałem rozwiązać ten problem na wiele sposóbów, ale zawsze bez efektu - to przekracza moją wiedzę. Być może ktoś z użytkowników będzie wiedział, jak mi pomóc? Oczywiście to, co jest na wejściu (czyli ów pseudo-tag) może być dowolnie zmodyfikowany. Jeśli miałby to uprościć poszukiwaną przeze mnie funkcję to na przykład może on mieć taką postać: Kod [lbimg img_prev="plik_maly" img_main="plik_duzy" title="podpis" align="orientacja"] Lub dowolną inną. Wszystko, czego do szczęścia potrzebuję to możliwość przekazania tych czterech parametrów dla każdego obrazka i następnie przetworzenie tego do pokazanego powyżej ciągu tagów HTML. Z góry dziękuję za wszelką pomoc, Trejder |
|
|
![]() |
-Trejder- |
![]()
Post
#2
|
Goście ![]() |
Witam,
Dzięki bardzo. Podany przez Ciebie kod działa świetnie. Niestety nie znam się kompletnie na wyrażeniach regularnych, dlatego nie miałbym najmniejszych szans na rozwiązanie tego samemu! (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ale... (ja zawsze mam jakieś ale! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... w między czasie zostałem zmuszony do zmiany konceptu. Wypadł ostatni parametr (decydujący o orientacji obrazka - align), a w to miejsce pojawiły się trzy osobne pseudo-tagi. Każdy z nich pokazuje obrazek w odpowiedniej orientacji (centralnie - [lbimg], do lewej - [lbimgl] i do prawej - [lbimgr]). Mamy więc na wejściu: Kod [lbimg]plik_maly|plik_duzy|podpis[/lbimg] [lbimgl]plik_maly|plik_duzy|podpis[/lbimgl] [lbimgr]plik_maly|plik_duzy|podpis[/lbimgr] Wziąłem Twoją linijkę:
i rozbudowałem ją do takiej postaci, jak mi się wydawało sensownej:
Oczywiście zmienne $out_lbimg, $out_lbimgl i $out_lbimgr zawierają odpowiedni pattern, czyli co ma być na wyjściu dla danego pseudo-taga. I tu zaczynają się schody. Sam nie wiem, czemu działa mi za każdym razem tylko jedna linijka. Gdy była tylko ta pierwsza - zamieniał mi pseudo-tagi wstawiające obrazki centralnie. Potem dopisałem tę drugą i zaczął prawidłowo zamieniać mi tagi [lbimgl], ale przestał [lbimg]. I tak w kółko - za każdym razem zamieniany jest tylko jeden rodzaj tagów. Co robię źle? Pozdrowienia, Trejder |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 10:36 |