我必须用php编写一个货币转换器,它可以转换以下货币:
EUR -> USD
EUR -> GBP
代码必须具有良好的结构和清晰。我的代码如下所示:
在 index.php 中,我编写 html 输入如下:
<select name="fT">
<option value="euro-usd@EUR-USD">EUR -> USD</option>
<option value="euro-gbp@EUR-GBP">EUR -> GBP</option>
<select>
<input type="text" name="amount" id="amount" value="">
<input type="submit"/>
转换.php如下所示:
<?php
include ("functions.php");
$fT = $_POST['fT'];
$amount = $_POST['amount'];
$valueAndText = explode('@', $fromTo);
$fromTo = $valueAndText[0];
$text = explode('-', $valueAndText[1]);
$from = $text[0];
$to = $text[1];
echo convertCurr($fT, $amount) ;
?>
改进此代码的任何建议?
尝试从我们的项目中删除所有硬代码。
将它们移动到配置文件并包含在项目中。这样您就可以随时更改它们,而无需对涂层部分进行任何修改。
使用有意义的完整变量名称,不要使它们太大。
尝试添加一些小注释,以解释代码或更轻松地使用代码 由另一个人
我们必须看的主要内容是
使代码可读
您可以将股价放在配置文件中,每次更改都可以替换该文件。我正在考虑您确实希望将数据存储在文件中而不是数据库中。
配置文件可能如下所示:
<?php
$config['usd-eur']=1.2;
$config['usd-gbp']=0.5;
?>
将此文件命名为 config.php,并将其与脚本一起放置,然后包含它。
<?php
require_once('config.php');
?>
关于 $_POST 变量,您需要转义它们以保护自己免受 MySQL 和 XSS 攻击。
您可以使用此功能:
<?php
function filter($data) {
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysql_real_escape_string($data);
return $data;
}?>
然后遍历你的 POST 变量:
foreach($_POST as $key => $value) {
$mydata[$key] = filter($value);
}
再一次,您为检测$fromto变量的选择而执行的处理量。
为什么不这样做:
<select name="fromTo">
<option value="1">(EUR) ---> (USD)</option>
<option value="2">(EUR) ---> (GBP)</option>
</select>
然后执行切换案例语句
<?php
switch($mydata['fromTo']){
case 1:
$from='euro';
$to='usd';
break;
case 2:
$from='euro';
$to='gbp';
break;
}
希望有帮助。