我必须在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"/>
convert.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) ;
?>
有关改进此代码的任何建议吗?
答案 0 :(得分:2)
尝试从我们的项目中删除所有硬编码。
将它们移动到配置文件并将它们包含在您的项目中。这样您就可以随时更改它们而无需在编码部分进行任何修改。
使用含义全变量名称并且不要使它们太大。
尝试添加小注释来解释代码或更轻松地使代码更容易由另一个人<登记/>
我们要看的主要内容是:
使代码可读
答案 1 :(得分:1)
您可以将股票价格放在可以替换每个更改的配置文件中。我在考虑您确实希望将数据存储在文件中,而不是存储在数据库中。
配置文件可能如下所示:
<?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>
然后执行Switch-Case语句
<?php
switch($mydata['fromTo']){
case 1:
$from='euro';
$to='usd';
break;
case 2:
$from='euro';
$to='gbp';
break;
}
希望有所帮助。