ДоХтор, запись в файл там вообще не нужна, просто выводи результат, считай прям при выполнении
# Koenig (20.01.2014 / 21:06)
ДоХтор, запись в файл там вообще не нужна, просто выводи результат, считай прям при выполнении
У меня так не получалось. Сегодня попробую по твоему совету. Если не выйдет - попробую записать в $_SESSION. Спасибо за идею )))
# Koenig (20.01.2014 / 21:06)
считай прям при выполнении
А на счёт этого - так именно в этом и идея, считать по принципу аналогового калькулятора
ДоХтор,
$result = '';
eval('$result = '.(1+1*560.68/2).';');
echo $result;
# Koenig (20.01.2014 / 21:37)
ДоХтор, $result = '';
eval('$result = '.(1+1*560.68/2).';');
echo $result;
О как ... Всё намного проще становится ))
ДоХтор, надо проверять, через eval можно вредоносный код какой либо исполнить
# Koenig (20.01.2014 / 21:46)
ДоХтор, надо проверять, через eval можно вредоносный код какой либо исполнить
Через fopen() тоже можно навредить. Вот цитата: "нетрудно заметить, что вызов open в таком виде небезопасен. Например, зайдя по адресу /cgi/test.pl?fname=|dеl+/s/q+c:\windows, в программе будет выполнено:
open(F, "|dеl /s/q c:\\windows") or ...
Это приведет к немедленному уничтожению всей директории Windows!"
Koenig, лучше будет спарсить 2+2 на предмет
preg_match('#^([\d\.]+)(\+|\-|\%|\/|\*)([\d\.])$#', $string, result)
$result[0], $result[1], $result[2]
и задачка посложнее, и исполнение аккуратнее, и проверка на валидность задания
.gif)
как то так, мне кажется
Koenig, Вот модернизировал калькулятор - написал с использованием сессий, сократил условия, добавил проверку функцией floatval(), и добавил кнопку сброса
код (+/-)
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css?<?=rand(1,5000);?>" />
<script type="text/javascript">
function setFocus(){
document.getElementById("act").focus(); // Активируем поле "act"
input = document.getElementById("act");
input.selectionStart = input.value.length; // Ставим каретку в конец поля "act"
}
</script>
<title>Калькулятор</title>
</head>
<body onload="setFocus();">
<div class="">
<form id="top" action="calk.php" method="post">
<input id="act" type="text" name="msg" size="23" value="
<?php
///// ПРИБАВЛЕНИЕ /////
echo $_SESSION['res']=(!empty($_POST['msg'])&&$_POST['1']=='+')?$_SESSION['res'] = floatval($_POST['msg']).'+':'';
$_SESSION['res']=(!empty($_POST['msg'])&&$_POST['5']=='=')?$_SESSION['res'] = $_POST['msg']:'';
$arr = explode('+', $_SESSION['res']); // Разбиваем строку на элементы массива
$pos = strpos($_SESSION['res'], '+'); // Ищем вхождение '+'
echo $result=($pos==true)?$arr[0]+$arr[1]:'';
///// ВЫЧИТАНИЕ /////
echo $_SESSION['res']=(!empty($_POST['msg'])&&$_POST['2']=='-')?$_SESSION['res'] = floatval($_POST['msg']).'-':'';
$_SESSION['res']=(!empty($_POST['msg'])&&$_POST['5']=='=')?$_SESSION['res'] = $_POST['msg']:'';
$arr = explode('-', $_SESSION['res']);
$pos = strpos($_SESSION['res'], '-');
echo $result=($pos==true)?$arr[0]-$arr[1]:'';
///// УМНОЖЕНИЕ /////
echo $_SESSION['res']=(!empty($_POST['msg'])&&$_POST['3']=='*')?$_SESSION['res'] = floatval($_POST['msg']).'*':'';
$_SESSION['res']=(!empty($_POST['msg'])&&$_POST['5']=='=')?$_SESSION['res'] = $_POST['msg']:'';
$arr = explode('*', $_SESSION['res']);
$pos = strpos($_SESSION['res'], '*');
echo $result=($pos==true)?$arr[0]*$arr[1]:'';
///// ДЕЛЕНИЕ /////
echo $_SESSION['res']=(!empty($_POST['msg'])&&$_POST['4']=='/')?$_SESSION['res'] = floatval($_POST['msg']).'/':'';
$_SESSION['res']=(!empty($_POST['msg'])&&$_POST['5']=='=')?$_SESSION['res'] = $_POST['msg']:'';
$arr = explode('/', $_SESSION['res']);
$pos = strpos($_SESSION['res'], '/');
if($pos==true){
echo $result=($arr[0] !="" && $arr[1] !=0)?$arr[0]/$arr[1]:'';
}
if($_POST['6']=='C'){
unset($_SESSION['res']);
}
?>" /><br />
<input type="submit" name="5" value="=" />
<input type="submit" name="6" value="C" />
<input type="submit" name="1" value="+" />
<input type="submit" name="2" value="-" />
<input type="submit" name="3" value="*" />
<input type="submit" name="4" value="/" />
</form>
</div>
</body>
</html>
Зодачка.
Написать функцию, которой в качестве единственного аргумента, передается массив слов.
Функция же, должна определить для каждого слова, является ли оно полиндромом или нет.
Если да - то выводить в стандартный вывод "T", если нет - "F".
Пример функции.
function palindromes($words) {
// ваш код
}
Первый набор слов, с латиницей. Он будет проще в реализации.
palindromes(array("noon", "orange", "wow")); //=> TFT
И второй набор слов, с кириллицей. Он по сложнее.
palindromes(array("кот", "ротор", "топот", "город")); //=> FTTF
З.Ы: если кто не понял, полиндром - это слово, одинаково читающееся в обоих направлениях.