![]() |
![]() |
-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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Proszę |
|
|
-Trejder- |
![]()
Post
#3
|
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! ![]() Ale... (ja zawsze mam jakieś ale! ![]() 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 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat $tresc = preg_replace('#\[lbimg\](.*?)\|(.*?)\|(.*?)\[/lbimg\]#si', $out_lbimg, $in); $tresc = preg_replace('#\[lbimgl\](.*?)\|(.*?)\|(.*?)\[/lbimgl\]#si', $out_lbimgl, $in); $tresc = preg_replace('#\[lbimgr\](.*?)\|(.*?)\|(.*?)\[/lbimgr\]#si', $out_lbimgr, $in); Widzisz już co jest nie tak? Do wszystkich trzech wyrażeń przekazujesz "bazowy tekst", który znajduje się pod zmienną $in, a nie tekst spod zmiennej $tresc -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
-Trejder- |
![]() ![]()
Post
#5
|
Goście ![]() |
Witam,
Widzisz już co jest nie tak? Do wszystkich trzech wyrażeń przekazujesz "bazowy tekst", który znajduje się pod zmienną $in, a nie tekst spod zmiennej $tresc Jak już pisałem wcześniej - nie jestem specjalistą od wyrażeń regularnych, ale... żeby taką głupotę strzelić to trzeba być naprawdę wysokich lotów kretynem! :/ :/ :/ No, nic - jeszcze raz dziękuję, bo oczywiście po wprowadzeniu Twoich zmian, wszystko zaczęło działać jak należy. EoT Podziękowania i pozdrowienia, Trejder |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem ze zmienna w php. Dokladnie w ksiazce jest przyklad aby wstawic to co ponizej do html'a. <tr> <td>Jak dowiedzieli sie panstwo o sklepie </td> <td><select name="jak"> <option value = "a"> <option value = "b">Jestem stalym klientem <option value = "c">Reklama telewizyjna <option value = "d">Ksiazka telefniczna <option value = "e">Znajomy </select> </td> </tr> Pisze tam ze slowo "jak" to nowa zmienna dla PHP. Idac dalej wklejam fragmet PHP gdzie slowo "jak" ma byc obslugiwane: if($jak == 'a') echo '<p>Zrodlo nieznane</p>'; elseif($jak == 'b') echo '<p>Staly klien</p>'; elseif($jak == 'c') echo '<p>Reklama telewizyjna</p>'; elseif ($jak == 'd') echo '<p>Ksiazka telefoniczna</p>'; elseif($jak == 'e') echo '<p>Znajomy</p>'; else echo 'Nie dziala tak jak ma dzialac'; I niestety nie dziala. Obojeteni czego nie wybiore wyswietla Nie dziala tak jak ma dzialac. Jak sprawdzam bledy na serwerze pokazuje mi [error] PHP Notice: Undefined variable: jak Pomozcie |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Temat wałkowany wielokrotnie: poczytaj o register_globals off i tablicach $_GET i $_POST.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:53 |