zbyt wolny preg_match_all dla 60free
conish - 31-01-2008 18:37
zbyt wolny preg_match_all dla 60free
Witam!
Zaczne od opisania problemu. Moj skrypt laczy sie ze strona, pobiera ja (okolo 26k linii, 1,1mb). Przez wyrazenie regularne wyciagam z niego to co mnie interesuje. Uzywam funkcji preg_match_all. Niestety jest ona za bardzo obciazajaca dla serwera i co chwile mi sie krzaczy:) Czy ktos z Was zna inna funkcje, ktora dziala tak samo jak preg_match_all, ale jest szybsza i wydajniejsza?
mariano - 01-02-2008 08:55
Wklej kod.
conish - 01-02-2008 08:57
Kod:
preg_match_all("/<tr>.{1,10}<td>[0-9]{1,4}\.<\/td>.{1,10}<td>.{0,65}<\/td><td><img src=\"art\/icon_karma_[a-z]{1,6}.jpg\" width=\"20\" height=\"20\" border=\"0\"><\/td><td><a href=\"bk\.php\?loc=look&look_id=[0-9]+\">.{1,35}<\/a><\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,10}<td>[0-9]{1,10}<\/td>.{1,20}<\/tr>/s", $page, $matches);
btw ftp lezy :)
mariano - 01-02-2008 09:42
Serio to wyrazenie musi byc az tak skomplikowane? Mimo to nie powinno wykonywac sie az tak dlugo. Jestes pewien, ze tu wlasnie lezy zrodlo problemu? Moze np. strona sciaga sie zbyt dlugo albo w ogole jest problem z polaczeniem sie z serwerem? Probowales uruchomic swoj skrypt na pliku na koncie (bez sciagania go z internetu)?
conish - 01-02-2008 09:45
No niestety... strona jest oparta na tabelkach, a nikt nie pomyslal, zeby nadawac im id... W kazdym razie wyrazenie raczej musi takie byc... Probowalem tez uruchamiach preg_match_all na pliku na serwerze... to samo :)
Zmniejszylem plik, powycinalem glupoty... ale on dalej nie dziala :)
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl