Jest to system obsługi formularzy oparty na założeniu, że wszystko da się zrobić dodając tabele do bazy, oraz includując 1 plik. Program na podstawie bazy danych, buduje formularz dodawania nowego obiektu, do dodanych tworzy liste, daje możliwość edycji. Zabezpiecza formularze zgodnie z wytycznymi z bazy danych.
Piszę to sobie, wszystko ładnie pięknie, jednak zaciąłem się przy wyrażeniach regularnych, i ich praktycznym zastosowaniu. Przeczytałem sobie cały tutorial Włodzimierza Gajdy ( ten 39 stronnicowy, dot reg expów ), jednak mimo to średnio idzie mi testowanie, i od rana próbuję rozwiązać ten problem, bezefektywnie tracąc czas, stąd moja prośba o pomoc. Na wstępie dodam, że skrypt musi być możliwie jak najbardziej wydajny. Jeżeli więc istnieją lepsze sposoby, uprzejmie proszę o ich podanie, jestem otwarty na wszelakie propozycje.
Ogólny zarys projektu mamy, teraz problemy
Chcę stworzyć funkcję, której zadaję tekst z contentem ( zmienna ), wytyczam co znajduje się bezpośrednio przed szukanąfrazą, i co znajduje się po.
Czyli np coś takiego
function szukaj($text, $przed, $po) { . . . return $znaleziona_vartość }
przykłady wywołań
szukaj('<body><div id="q">1337</div></body>', '<div id="q">', '</div>'); //zwraca 1337
szukaj('<body><div id="q">int(13)</div></body>', '(', ')'); //zwraca 13
i tak dalej.
Oczywiście niektóre znaki, jak (, ', ", ), itp muszą być dodatkowo slashowane, więc pewnie jakaś tablica podmiany by musiała być
aż wstyd, ale próbowałem coś takiego.
function TEXT_getValueBetween($text, $before, $after, $klasa='*') { if($before=='(') $before='\\('; if($after==')') $after='\\)'; //echo '<br />/^(.*)'.$before.'(.*)'.$after.'('.$klasa.')/<br />'; //$tmp = preg_match('/^(.*)'.$before.'(.*)'.$after.'('.$klasa.')/', $text, $ret); $tmp = preg_match('([a-z])'.$before.'[^'.$before.']([^'.$before.']'.$klasa.')'.$after, $text, $ret); return $ret; }
Jeżeli istnieje jekieś gotowe roziwązanie, jestem nim bardzo zainteresowany, szukałem po googlach i po forum, jednak musiałem źle szukać, wpisując regular expression value between, wyrażenia regularne miedzy itp itd
Uprzejmie proszę o pomoc przy rozwiązaniu problemów
aha, swoją drogą potrafię sobie poradzić z problemem od ręki
$struct[$i]['typ'] = $t0[0];//nadpisuje typ na taki, bez nawiasu $struct[$i]['typMax'] = $t1[0];//wpisuje max z nawiasu
jednak nie chodzi mi o poradzenie sobie, tylko o najlepszy sposób. Jeżeli ktoś jest wstanie poradzić coś konkretnego, to bardzo bym prosił.
Pozdrawiam serdecznie
Marcin