Для начала, вот пример того, как оценить preg_match()
$test = "abFc";
echo eval("return preg_match('#F#', '$test');");
Этот выход: 1
Синтаксис быть 'xxxx.match(xxx) != null'
не действует синтаксис PHP, и поэтому вы не можете использовать eval()
на него непосредственно - он должен быть действительным php. В вашем примере javascript и xxx
являются переменными. Их нужно переписать, чтобы они могли оценить в php. В моем примере я переписал заявление на eval("return (match('$xxxx', '$xxx') !== null);")
Вы можете написать функцию, передать переменную из таблицы и выполнить любую оценку, которая вам нужна, чтобы выполнить столько сравнений и строк кода, сколько потребуется.
Например:
$xxxx = "abFc";
$xxx = "F";
$eval = eval("return (match('$xxxx', '$xxx') !== null);");
if ($eval) {
echo "true";
} else {
echo "false";
}
function match($string, $regex){
// match: executes a search for a match in a string. It returns an array of information or null on a mismatch.
preg_match_all('#' . $regex . '#', $string, $amatch);
if(count($amatch[0]) > 0){
return $amatch[0];
} else {
return null;
}
}
Кроме того, прочитайте предупреждения, касающиеся использования eval()
Вы должны убедиться, что данные вы передаете ему известно, чтобы быть безопасным.
Если бы вы могли опубликовать фактический код для xxx.match (xxx), это поможет. – mseifert
{(EFT.match ("F"))! = Null} это фактический код – shyamkarthick
Является ли match() внешней функцией? А что такое EFT? Я не признаю EFT.match() как php-код. – mseifert