Kínzó PHP-s kérdés

Költői: miért nem lehet az eval() által dobott szintaktikai hibákat kódból elkapni? Csalódtam...

Hozzászólások

Köszönöm az ötleteket! A php_check_syntax tökéletes lenne, de sajnos "removed from PHP" :(. A külön processzben ellenőrzés alapgondolata bennem is felmerült, de nem biztos, hogy az éles környezetben lesz "exec", úgyhogy egyelőre nem építenék rá. Jelenleg a "@eval('return true;...')" a befutó.

wait, és azt hogyan tudod ellenőrizni, hogy a kedves júzerek nem művelnek semmi galádságot?
Nekem így elsőre az ugrana be, hogy eltávolítasz a stringből minden engedélyezett kifejezést, és ha fennmarad valami, akkor visszadobom.
Végülis nem fájin, ha valaki rekurzívan futtat unlink()-et ;)

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Innen egy lehetséges megoldás:
function check_syntax($code) {
return @eval('return true;' . $code);
}