-2

我必须在 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) ;
?>

对改进此代码有什么建议吗?

4

2 回答 2

2

尝试从我们的项目中删除所有硬代码。

将它们移动到配置文件并将它们包含在您的项目中。这样您就可以随时更改它们,而无需在编码部分进行任何修改。

使用含义完整的变量名,不要让它们太大。

尝试添加一些小注释来解释代码或让代码更容易理解 由另一个人

我们必须看的主要内容是

使代码可读

于 2012-08-13T11:17:52.937 回答
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;
 }

希望有帮助。

于 2012-08-13T11:27:43.863 回答