PHP: a preg_match() elkavarja a MIME típust?

Egy elég furcsa hibába futottam bele. Van egy ilyen sorom:


preg_match('/<select multiple name=\"FormAddrBookMembers\"[^>]*>(.)+?<\/select>/i',$page,$matches);

Ha ez lefut, az apache nem rendereli az oldalt, hanem megnyitja a file letöltő ablakot, hogy töltsem le a php filet. Ha ekvivalensre változtatom a reguláris kifejezést ugyanez a helyzet, ha elrontom, akkor minden ok (leszámítva, hogy nem azt az eredményt kapom amit szeretnék).

Egy WAMP szerveren fejlesztettem, ott nem volt ilyen probléma, most egy FreeBSD+Apache 2+PHP5 kombón akarnám élesíteni a cuccot.

Látott már valaki ilyet?

Hozzászólások

némi fejlemény: ereg()-gel megy a dolog, de az meg buta mint a tök...

Ez általában akkor van, ha a php segmentation fault-ol idő közben. Nézd meg az apache error logot, hogy van-e benne valami. Esetleg frissíts php-t.

Nem csodalom, hogy elszall.
Nezz mar ra, hogy mit mentesz el a regexpeddel!


(.)+

Ez ugye karakterenkent letrehoz egy captured subpattern-t egeszen az utolso select lezarasaig (mert ugye a greedy sincs kikapcsolva). Kicsit sok lesz szerintem :).

ui: biztos kell \ a " ele?
----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés

Én úgy látom hogy ott van a ? (ez a lazy, ha nem tévedek). A \-t biztos ami tuti odaírtam, de mivel ahogy említettem, a keresés a fejlesztő gépen rendesen lefutott, ezért nem hiszem hogy ezzel van baja.

Apache logban sem látok semmit, viszont ennek a segfault iránynak még megpróbálok utánajárni! A PHP 5.2.5-ös.