PHP 中的测量转换
Measurement conversions in PHP
我正在尝试做一个 PHP 转换器,它可以使用尽可能基本和简单的代码来转换测量值(对此是新的)。我希望这张图片能帮助您理解我正在尝试做的事情:
我创建了一个 HTML 文件,其表单如下所示:
<form action="converter.php" method="post">
<input type="text" name="number">
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
还有一个 PHP 文件,看起来像这样,但并不多:
<?php
$number = $_POST['number'];
$choose = $_POST['choose'];
$x = $number;
echo "$number $choose <br>";
?>
啊啊,我卡住了。我真的不知道如何在数学上和代码中转换这些值。无论您是给我完整的代码还是提示下一步该怎么做,都没有关系,只需要朝着正确的方向前进。
谢谢!
在 php 文件中进行必要的计算。
注意:使用计算进行了编辑,但从未测试过。仔细检查计算部分。
HTML
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//called when key is pressed in textbox
$("#number").keypress(function (e) {
//if the letter is not digit then display error and don\'t type anything
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});
});
</script>
<form action="converter.php" method="post">
<input type="text" name="number" id="number">
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
converter.php
<?php
$number = isset($_POST['number']) ? $_POST['number'] : 0;
$choose = isset($_POST['choose']) ? $_POST['choose'] : '';
switch ($choose)
{
case 'meter':
$cm = $number * 100;
$foot = $number * 3.2808;
$inches = $number * 39.370;
$Answer = 'Meters: '.$number.'<br />'.
'Cm: '.$cm.'<br />'.
'Foot: '.$foot.'<br />'.
'Inches: '.$inches;
break;
case 'cm':
$meter = $number / 100;
$foot = $number * 0.032808;
$inches = $number * 0.39370;
$Answer = 'Cm: '.$cm.'<br />'.
'Meters: '.$number.'<br />'.
'Foot: '.$foot.'<br />'.
'Inches: '.$inches;
break;
case 'foot':
$meter = $number / 3.2808;
$cm = $number / 0.032808;
$inches = $number * 12.000;
$Answer = 'Foot: '.$foot.'<br />'.
'Meters: '.$number.'<br />'.
'Cm: '.$cm.'<br />'.
'Inches: '.$inches;
break;
case 'inches':
$meter = $number / 39.370;
$cm = $number / 0.39370;
$foot = $number / 12.000;
$Answer = 'Inches: '.$inches.'<br />'.
'Foot: '.$foot.'<br />'.
'Meters: '.$number.'<br />'.
'Cm: '.$cm;
break;
default:
$Answer = '';
break;
}
echo $Answer;
?>
在不知道您的输入单元类型的情况下,您所做的只是猜测。我的建议是将表单更改为以下代码以简化输入。然后是快速简单的除法/乘法以获得所需的结果。这是表单和 php 处理代码的快速代码示例。
还有一些代码要添加到其中,包括额外的转换和快速检查以查看是否设置了某些值,但希望您应该了解它的要点。
<form action="converter.php" method="post">
<fieldset><legend>Select Your Input Type and Value</legend>
<input type="number" name="inputNumber" step="any" value="" />
<select name="inputFormat">
<optgroup name="Choose">
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
</optgroup>
</select>
</fieldset>
<fieldset><legend>Select your Output Type</legend>
<select name="outputFormat">
<optgroup name="Choose">
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
</optgroup>
</select>
</fieldset>
<input type="submit" name="submitForm" value="Convert!" />
</form>
<?php
$outputNumber=0;
$inputNumber = (float)$_POST['inputNumber'];
$inputFormat = $_POST['inputFormat'];
$outputFormat = $_POST['outputFormat'];
switch($inputFormat){
case "meter":
switch ($outputFormat){
case "meter": $outputNumber = $inputNumber;break; //METER TO METER
case "cm": $outputNumber = $inputNumber*100;break; //METER TO CM
case "foot": $outputNumber = $inputNumber*3.2808399;break; //METER TO FT
case "inches": $outputNumber = $inputNumber*39.3700787;break;//METER TO INCHES
}
break;
case "cm":
//ADD CONVERSION SWITCH IN HERE
break;
case "foot":
//ADD CONVERSION SWITCH IN HERE
break;
case "inches":
//ADD CONVERSION SWITCH IN HERE
break;
}
echo $outputNumber;
?>
更简单的一个:
index.html
<form action="converter.php" method="post">
<input type="number" name="number" required>
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
converter.php
<?php
$number = $_POST['number'];
$choose = $_POST['choose'];
$meters = $number / ($choose == 'cm'? 100 : ($choose == 'foot'? 3.28084 : ($choose == 'inches'? 39.3701 : 1)));
echo "Meters : $meters<br/>";
echo "Cm : ".($meters*100)."<br/>";
echo "Foot : ".($meters*3.28084)."<br/>";
echo "Inches : ".($meters*39.3701)."<br/>";
还请更新这些类别的 php 代码。 <select name="choose"><option>Choose</option><option value="kg" id="kg">kg</option><option value="liter" id="liter">Liter</option><option value="mililiter" id="mililiter">Mililiter</option></select>
问题已经得到解答,但为了将来,我特意为那些将在更大规模上进行 SI 单位转换的人写这篇文章。
我写了一个 PHP 用于 SI 单位转换的库,称为 puconverter ,你只需调用一个函数,它就会像这样为你转换
<?php
include "puconverter.php";
echo length_converter($val,"cm", "m"); //this will convert $val in centimetres to its equivalent metres
?>
在您的 senerio 中使用它来创建网络应用程序:传递的 SI 单位参数将是一个变量,其中包含 HTML 形式的所选单位名称的值,在这种情况下,我们假设该值将为 cm,因此请像这样使用:
if(isset($_POST["submit"])){
$convertFrom= $_POST["centimeter"];
$val= $_POST["value"];
//$val is value to convert, $convertFrom is unit of the value to be converted
echo length_converter($val $convertFrom,"m");//returns value in metres
echo length_converter($val ,$convertFrom,"mm");//returns value in millimetres
echo length_converter($val ,$convertFrom,"km");//returns value in kilometres
}
有关所有其他 SI 单位转换函数的完整文档,请访问库 GitHub 页面:https://github.com/GeniusGeeek/pu-converter/blob/master/README.md
我正在尝试做一个 PHP 转换器,它可以使用尽可能基本和简单的代码来转换测量值(对此是新的)。我希望这张图片能帮助您理解我正在尝试做的事情:
我创建了一个 HTML 文件,其表单如下所示:
<form action="converter.php" method="post">
<input type="text" name="number">
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
还有一个 PHP 文件,看起来像这样,但并不多:
<?php
$number = $_POST['number'];
$choose = $_POST['choose'];
$x = $number;
echo "$number $choose <br>";
?>
啊啊,我卡住了。我真的不知道如何在数学上和代码中转换这些值。无论您是给我完整的代码还是提示下一步该怎么做,都没有关系,只需要朝着正确的方向前进。
谢谢!
在 php 文件中进行必要的计算。
注意:使用计算进行了编辑,但从未测试过。仔细检查计算部分。
HTML
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//called when key is pressed in textbox
$("#number").keypress(function (e) {
//if the letter is not digit then display error and don\'t type anything
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});
});
</script>
<form action="converter.php" method="post">
<input type="text" name="number" id="number">
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
converter.php
<?php
$number = isset($_POST['number']) ? $_POST['number'] : 0;
$choose = isset($_POST['choose']) ? $_POST['choose'] : '';
switch ($choose)
{
case 'meter':
$cm = $number * 100;
$foot = $number * 3.2808;
$inches = $number * 39.370;
$Answer = 'Meters: '.$number.'<br />'.
'Cm: '.$cm.'<br />'.
'Foot: '.$foot.'<br />'.
'Inches: '.$inches;
break;
case 'cm':
$meter = $number / 100;
$foot = $number * 0.032808;
$inches = $number * 0.39370;
$Answer = 'Cm: '.$cm.'<br />'.
'Meters: '.$number.'<br />'.
'Foot: '.$foot.'<br />'.
'Inches: '.$inches;
break;
case 'foot':
$meter = $number / 3.2808;
$cm = $number / 0.032808;
$inches = $number * 12.000;
$Answer = 'Foot: '.$foot.'<br />'.
'Meters: '.$number.'<br />'.
'Cm: '.$cm.'<br />'.
'Inches: '.$inches;
break;
case 'inches':
$meter = $number / 39.370;
$cm = $number / 0.39370;
$foot = $number / 12.000;
$Answer = 'Inches: '.$inches.'<br />'.
'Foot: '.$foot.'<br />'.
'Meters: '.$number.'<br />'.
'Cm: '.$cm;
break;
default:
$Answer = '';
break;
}
echo $Answer;
?>
在不知道您的输入单元类型的情况下,您所做的只是猜测。我的建议是将表单更改为以下代码以简化输入。然后是快速简单的除法/乘法以获得所需的结果。这是表单和 php 处理代码的快速代码示例。
还有一些代码要添加到其中,包括额外的转换和快速检查以查看是否设置了某些值,但希望您应该了解它的要点。
<form action="converter.php" method="post">
<fieldset><legend>Select Your Input Type and Value</legend>
<input type="number" name="inputNumber" step="any" value="" />
<select name="inputFormat">
<optgroup name="Choose">
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
</optgroup>
</select>
</fieldset>
<fieldset><legend>Select your Output Type</legend>
<select name="outputFormat">
<optgroup name="Choose">
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
</optgroup>
</select>
</fieldset>
<input type="submit" name="submitForm" value="Convert!" />
</form>
<?php
$outputNumber=0;
$inputNumber = (float)$_POST['inputNumber'];
$inputFormat = $_POST['inputFormat'];
$outputFormat = $_POST['outputFormat'];
switch($inputFormat){
case "meter":
switch ($outputFormat){
case "meter": $outputNumber = $inputNumber;break; //METER TO METER
case "cm": $outputNumber = $inputNumber*100;break; //METER TO CM
case "foot": $outputNumber = $inputNumber*3.2808399;break; //METER TO FT
case "inches": $outputNumber = $inputNumber*39.3700787;break;//METER TO INCHES
}
break;
case "cm":
//ADD CONVERSION SWITCH IN HERE
break;
case "foot":
//ADD CONVERSION SWITCH IN HERE
break;
case "inches":
//ADD CONVERSION SWITCH IN HERE
break;
}
echo $outputNumber;
?>
更简单的一个:
index.html
<form action="converter.php" method="post">
<input type="number" name="number" required>
<select name="choose">
<option>Choose</option>
<option value="meter" id="meter">Meter</option>
<option value="cm" id="cm">Cm</option>
<option value="foot" id="fot">Fot</option>
<option value="inches" id="tum">Tum</option>
<input type="submit" value="Convert!">
</form>
converter.php
<?php
$number = $_POST['number'];
$choose = $_POST['choose'];
$meters = $number / ($choose == 'cm'? 100 : ($choose == 'foot'? 3.28084 : ($choose == 'inches'? 39.3701 : 1)));
echo "Meters : $meters<br/>";
echo "Cm : ".($meters*100)."<br/>";
echo "Foot : ".($meters*3.28084)."<br/>";
echo "Inches : ".($meters*39.3701)."<br/>";
还请更新这些类别的 php 代码。 <select name="choose"><option>Choose</option><option value="kg" id="kg">kg</option><option value="liter" id="liter">Liter</option><option value="mililiter" id="mililiter">Mililiter</option></select>
问题已经得到解答,但为了将来,我特意为那些将在更大规模上进行 SI 单位转换的人写这篇文章。
我写了一个 PHP 用于 SI 单位转换的库,称为 puconverter ,你只需调用一个函数,它就会像这样为你转换
<?php
include "puconverter.php";
echo length_converter($val,"cm", "m"); //this will convert $val in centimetres to its equivalent metres
?>
在您的 senerio 中使用它来创建网络应用程序:传递的 SI 单位参数将是一个变量,其中包含 HTML 形式的所选单位名称的值,在这种情况下,我们假设该值将为 cm,因此请像这样使用:
if(isset($_POST["submit"])){
$convertFrom= $_POST["centimeter"];
$val= $_POST["value"];
//$val is value to convert, $convertFrom is unit of the value to be converted
echo length_converter($val $convertFrom,"m");//returns value in metres
echo length_converter($val ,$convertFrom,"mm");//returns value in millimetres
echo length_converter($val ,$convertFrom,"km");//returns value in kilometres
}
有关所有其他 SI 单位转换函数的完整文档,请访问库 GitHub 页面:https://github.com/GeniusGeeek/pu-converter/blob/master/README.md