Php 哪种语言最适合制作一个简单的基于网络的计算器,可以在键入时进行计算?

Php 哪种语言最适合制作一个简单的基于网络的计算器,可以在键入时进行计算?,php,Php,我有一个简单的计算器,以10为基数,以64为基数: <!DOCTYPE php> <html> <head> </head> <body> <?php echo "Hello! Let's make an annotag!" ?> <br/> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <l

我有一个简单的计算器,以10为基数,以64为基数:

<!DOCTYPE php> 
<html>
<head>
</head>
<body> 
<?php echo "Hello! Let's make an annotag!" ?>
<br/> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label for="number">Enter your book's ISBN:</label> 
<input type="text" id="isbn" name="isbn" /> 
<input type="submit" value="submit" name="submit" /> 
<label for="number">Enter your book code:</label> 
<input type="text" id="bookCode" name="bookCode" /> 
<input type="submit" value="submit" name="submit" /> 
</form> 
<?php 
$isbn=$_POST['isbn']; 
$bookCode=$_POST['bookCode']; 
$br='<br/>'; //saves a little typing
echo 'ISBN: '.$isbn.$br;  
//these functions adapted from http://stackoverflow.com/questions/4964197/converting-a-number-base-10-to-base-62-a-za-z0-9 
function toBase($num, $b=64) {
  $base='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
  $r = $num  % $b ;
  $res = $base[$r];
  $q = floor($num/$b);
  while ($q) {
    $r = $q % $b;
    $q =floor($q/$b);
    $res = $base[$r].$res;
  }
  return $res;
}

function to10( $num, $b=64) {
  $base='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
  $limit = strlen($num);
  $res=strpos($base,$num[0]);
  for($i=1;$i<$limit;$i++) {
    $res = $b * $res + strpos($base,$num[$i]);
  }
  return $res;
}
if (isset($isbn)) { 
    echo 'Your bookcode is:  '.toBase($isbn).$br; 
}
if (isset($bookCode)) { 
    echo 'Your ISBN is: '.to10($bookCode).$br; 
}
?>
</body> 
</html>


为了获得最佳的用户体验,javascript将是最好的选择。看看现在浏览器中使用的主要语言JavaScript有多容易。从这里开始:


我现在有两件事要评论

  • 如果希望计算器是动态的,请在代码中使用Javascript和AJAX
  • 如果你不希望有一个动态的页面,请坚持使用PHP和HTML以及CSS

希望这能解释。

使用javascript是一种很好的语言。
下面是一个javascript计算,如多恩·齐登所说。

Javascript在某些方面优于php。Javascript是客户端脚本语言
所以它不会给你的服务器带来负担。还有javascript的一些缺点是
也像一些旧的浏览器不支持javascript和其他人一样,

取消激活javascript自己的浏览器。如果出现其中一个浏览器,您的clac将无法工作

另一个版本的计算器,带有一些额外的按钮

   <SCRIPT LANGUAGE="JavaScript">
    function addChar(input, character) {
    if(input.value == null || input.value == "0")
    input.value = character
    else
    input.value += character
    }
    function cos(form) {
    form.display.value = Math.cos(form.display.value);}
    function sin(form) {
    form.display.value = Math.sin(form.display.value);}
    function tan(form) {
    form.display.value = Math.tan(form.display.value);}
    function sqrt(form) {
    form.display.value = Math.sqrt(form.display.value);}
    function ln(form) {
    form.display.value = Math.log(form.display.value);}
    function exp(form) {
    form.display.value = Math.exp(form.display.value);}
    function sqrt(form) {
    form.display.value = Math.sqrt(form.display.value);}
    function deleteChar(input) {
    input.value = input.value.substring(0, input.value.length - 1)
    }
    function changeSign(input) {
    substring
    if(input.value.substring(0, 1) == "-")
    input.value = input.value.substring(1, input.value.length)
    else
    input.value = "-" + input.value
    }
    function compute(form)  {
    form.display.value = eval(form.display.value)}
    function square(form)  {
    form.display.value = eval(form.display.value) *
    eval(form.display.value)}
    function checkNum(str)  {
    for (var i = 0; i < str.length; i++) {
    var ch = str.substring(i, i+1)
    if (ch < "0" || ch > "9") {
    if (ch != "/" && ch != "*" && ch != "+" && ch !=
    "-" && ch != "."
    && ch != "(" && ch!= ")") {
    alert("invalid entry!")
    return false
             }
          }
       }
    return true
    }
    </SCRIPT>


    <BODY>

    <CENTER>
    <FORM>
    <input name="display" value="0" size="25"></td>
    <br>
    <input type="button" value="   exp  " onClick="if (checkNum(this.form.display.value)) { 
    exp(this.form) }">
    <input type="button" value="    7    " onClick="addChar(this.form.display, '7')">
    <input type="button" value="    8    " onClick="addChar(this.form.display, '8')">
    <input type="button" value="    9    " onClick="addChar(this.form.display, '9')">
    <input type="button" value="    /    " onClick="addChar(this.form.display, '/')">
    <br>
    <input type="button" value="   ln    " onClick="if (checkNum(this.form.display.value)) { 
    ln(this.form) }">
    <input type="button" value="    4    " onClick="addChar(this.form.display, '4')">
    <input type="button" value="    5    " onClick="addChar(this.form.display, '5')">
    <input type="button" value="    6    " onClick="addChar(this.form.display, '6')">
    <input type="button" value="    *    " onClick="addChar(this.form.display, '*')">
    <br>
    <input type="button" value="   sqrt  " onClick="if (checkNum(this.form.display.value)) {
    cos(this.form) }">
    <input type="button" value="    1    " onClick="addChar(this.form.display, '1')">
    <input type="button" value="    2    " onClick="addChar(this.form.display, '2')">
    <input type="button" value="    3    " onClick="addChar(this.form.display, '3')">
    <input type="button" value="    -    " onClick="addChar(this.form.display, '-')">
    <br>
    <input type="button" value="   sq    " onClick="if (checkNum(this.form.display.value)) { 
    square(this.form) }">
    <input type="button" value="    0    " onClick="addChar(this.form.display, '0')"> 
    <input type="button" value="    .    " onClick="addChar(this.form.display, '.')"> 
    <input type="button" value="   +/-   " onClick="changeSign(this.form.display)">
    <input type="button" value="    +    " onClick="addChar(this.form.display, '+')">
    <br>
    <input type="button" value="    (    " onClick="addChar(this.form.display, '(')"> 
    <input type="button" value="   cos   " onClick="if (checkNum(this.form.display.value)) { 
    cos(this.form) }">
    <input type="button" value="   sin   " onClick="if (checkNum(this.form.display.value)) {
    sin(this.form) }">
    <input type="button" value="   tan   " onClick="if (checkNum(this.form.display.value)) { 
    tan(this.form) }">
    <input type="button" value="    )    " onClick="addChar(this.form.display, ')')"> 
    <br>
    <input type="button" value="   Clear       " onClick="this.form.display.value = 0 ">
    <input type="button" value="   Back Space  " onClick="deleteChar(this.form.display)">
    <input type="button" value="   Enter       " name="enter" onClick="if (checkNum(this.form.display.value)) { 
    compute(this.form) }">
    </FORM>
    </CENTER>

函数addChar(输入,字符){
if(input.value==null | | input.value==“0”)
input.value=字符
其他的
input.value+=字符
}
函数cos(表格){
form.display.value=Math.cos(form.display.value);}
函数sin(form){
form.display.value=Math.sin(form.display.value);}
功能(表格){
form.display.value=Math.tan(form.display.value);}
功能sqrt(表格){
form.display.value=Math.sqrt(form.display.value);}
函数ln(形式){
form.display.value=Math.log(form.display.value);}
函数exp(表格){
form.display.value=Math.exp(form.display.value);}
功能sqrt(表格){
form.display.value=Math.sqrt(form.display.value);}
函数deleteChar(输入){
input.value=input.value.substring(0,input.value.length-1)
}
功能更改符号(输入){
子串
if(输入值子字符串(0,1)==“-”)
input.value=input.value.substring(1,input.value.length)
其他的
input.value=“-”+input.value
}
函数计算(表格){
form.display.value=eval(form.display.value)}
功能广场(表格){
form.display.value=eval(form.display.value)*
eval(form.display.value)}
函数checkNum(str){
对于(变量i=0;i“9”){
如果(ch!=“/”&&ch!=“*”&&ch!=“+”&&ch=
“-”&&ch!=”
&&ch!=“(&&ch!=”){
警报(“无效条目!”)
返回错误
}
}
}
返回真值
}







javascript可能是实现实时客户端交互的最佳方式。您可能会发现这很有趣:任何在客户端运行的语言,可能是flash、java、javascript甚至vbscript(仅限IE)。由于支持,最好的是javascript。同样的道理,可能没有javascript支持(不太可能),然后你只能去发帖并返回。
onkeyup
事件应该足够了。或者
onkeydown
如果你真的想要realtimemorning dude,没必要急躁..你可以建议..对不起,对我来说就像午夜一样,+1:)lol np..这是清晨:)计算器的AJAX?似乎有点过分了…:PAJAX与中的一样用于页面的动态。