Php 哪种语言最适合制作一个简单的基于网络的计算器,可以在键入时进行计算?
我有一个简单的计算器,以10为基数,以64为基数: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
<!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与中的一样用于页面的动态。