Eval Not so Evil?
RE: eval haters... I agree with you most of the time (and please don't post that old quote about its use), but how about this:
<b>You need to take conditions from an obscure engine or language, one that uses a format that is different from PHP, and convert this into PHP evaluatable form.</b>

You additionally need to change the name/form of the 'variables' - as you need to evaluate these conditions against a Hash array of values.

So something like this in the engine
{Q1 [NB]}AND_NOT{Q1=1}

Would need to first be converted to (I do it via Regex):
($dataArray["Q1"]!=NULL)AND_NOT($dataArray["Q1"]==1)
And then evaluated in PHP

NOW - before you give me a simple example that takes care evaluating >, <, <=, >= for a simple case, consider this: these conditions can get VERY COMPLEX, we are talking multi-bracket nesting, ANDs, ORs, NOTs and everything in between. A near infinite realm of possibilities and a few days of time to get 'er done. In this case, wouldn't eval be best?

If there are quick alternatives - we are open to suggestions!
Eval Not so Evil?
===

RE: eval haters... I agree with you most of the time (and please don't post that old quote about its use), but how about this:
<b>You need to take conditions from an obscure engine or language, one that uses a format that is different from PHP, and convert this into PHP evaluatable form.</b>

You additionally need to change the name/form of the 'variables' - as you need to evaluate these conditions against a Hash array of values.

So something like this in the engine
{Q1 [NB]}AND_NOT{Q1=1}

Would need to first be converted to (I do it via Regex):
($dataArray["Q1"]!=NULL)AND_NOT($dataArray["Q1"]==1)
And then evaluated in PHP

NOW - before you give me a simple example that takes care evaluating >, <, <=, >= for a simple case, consider this: these conditions can get VERY COMPLEX, we are talking multi-bracket nesting, ANDs, ORs, NOTs and everything in between. A near infinite realm of possibilities and a few days of time to get 'er done. In this case, wouldn't eval be best?

If there are quick alternatives - we are open to suggestions!