Я написал базовый HTML/PHP для расчета таблицы Кэли некоторых также основных бинарных операций над конечное множество из n элементов.
Имя файла q.php
и код (очищенный от всех стилей и т.д.) следующий:
<!doctype html>
<html>
<head><meta http-equiv="content-type" content="text/html;"></head>
<body>
<form action="q.php" method="post">
Order: <input type="number" name="c1"><br><br>
Operation: <input type="text" name="c2"><br>
(syntax:<strong> $i "+" $j "%" 3 </strong>)<br><br>
<input type="submit" name="submit" value="Calculate / Reset">
</form>
<?php
$n=$_POST['c1']; $p=$_POST['c2'];
echo "<table style=\"text-align: center; margin: auto;\" cellpadding=\"8\">\n";
for ($i=0; $i<$n; $i++) {
echo "<tr>\n";
for ($j=0; $j<$n; $j++) {
eval("\$a=\"$p\";");
echo "\t<td>".$a."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
</body>
</html>
Очень легко ввести целое число n
в форму, но (точно так же, как здесь) Я не могу найти хороший способ ввода в форму бинарных операторов (это строки?).
Точнее, если операция над i и j, например. i+(j mod 3), я хотел бы ввести что-то вроде
i + j % 3
или даже
$i + $j % 3
вместо
$i "+" $j "%" 3
Это последнее с двойными кавычками - не очень приятное для пользователя - уже работает.
Можем ли мы сделать что-то лучше? А может быть еще и скобками ()
управляться, чтобы вычислять (i+j)*2
так же легко, как i+(j*2)
, что я уже делаю?
Мне теперь интересно, спасибо!
htmlspecialchars()
. - person Amal Murali   schedule 22.04.2014eval()
произвольно вводить данные в веб-форму. - person cpilko   schedule 22.04.2014print_r(phpinfo(),true)
в поле ввода. Проверьте этот вопрос SO для некоторых возможных решений. - person cpilko   schedule 22.04.2014eval("\$a= {$p};"); echo "\t<td>" . $p . " = " . $a . "</td>\n";
в своем коде вместо кода eval. - person Gildonei   schedule 22.04.2014