- preg_match: documentation ( source)
<?php
$data="musisz odpowiedziec w ciagu 280 sekund: 88+67=?musisz odpowiedziec w ciagu 280 sekund: 88+67=?musisz odpowiedziec w ciagu 280 sekund: 88+67=?";
$rret = preg_match('/((\d+)(\+|\-|\*)(\d+))\s*\=\s*\?/', $data, $matches);
if ($rret !== 1) {
throw new \LogicException("ERROR: COULD NOT EXTRACT MATH QUESTION!");
}
$left = (int)$matches[2];
$operator = $matches[3];
$right = (int)$matches[4];
$answer = null;
switch ($operator) {
case "+":
{
$answer = $left + $right;
break;
}
case "*":
{
$answer = $left * $right;
break;
}
case "-":
{
$answer = $left - $right;
break;
}
default:
{
throw new \LogicException("UNKNOWN OPERATOR: {$operator}");
}
}
echo "question parsed: answer: \"{$answer}\" left: \"{$left}\" operator: \"{$operator}\" right: \"{$right}\"\n";