<?php
 
 
/**
 
 * Example File 2 For Unitconvertor 
 
 *
 
 * @version $Id$
 
 * @copyright 2004 CVH [email protected]
 
 **/
 
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
 
<head>
 
<title>TP</title>
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
<link href="../styles/1000/standard.css" rel="stylesheet" type="text/css"> 
 
<link href="../styles/1000/text.css" rel="stylesheet" type="text/css">
 
<link href="../styles/1000/boxes.css" rel="stylesheet" type="text/css">
 
</head>
 
 
<body>
 
<?
 
 
 
require_once("UnitConvertor.php");
 
 
 
 class TP_Converter extends UnitConvertor {
 
    function TP_Converter($lang = "en")
 
    {
 
        if ($lang != 'en' ) {
 
            $dec_point = '.'; $thousand_sep = "'";
 
        } else {
 
            $dec_point = ','; $thousand_sep = "'";
 
        }
 
        
 
        $this->UnitConvertor($dec_point , $thousand_sep );
 
 
    } // end func UnitConvertor
 
 
    function find_base_unit($from,$to) {
 
        while (list($skey,$sval) = each($this->bases)) {
 
                if ($skey == $from || $to == $skey || in_array($to,$sval) || in_array($from,$sval)) {
 
                    return $skey;                
 
                }
 
        }
 
        return false;        
 
    }
 
 
    function getTable($value, $from_unit, $to_unit, $precision) {
 
    
 
        if ($base_unit = $this->find_base_unit($from_unit,$to_unit)) {
 
        
 
            // A baseunit was found now lets convert from -> $base_unit 
 
            
 
                $cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision)." ".$base_unit;    
 
                $cell ['class']    = ($base_unit == $from_unit || $base_unit == $to_unit) ? "framedred": "";
 
                $cells[] = $cell;
 
            // We now have the base unit and value now lets produce the table;
 
            while (list($key,$val) = each($this->bases[$base_unit])) {
 
                $cell ['value'] = $this->convert($value, $from_unit, $val, $precision)." ".$val;    
 
                $cell ['class']    = ($val == $from_unit || $val == $to_unit) ? "framedred": "";
 
                $cells[] = $cell;
 
            }
 
 
            $cc = count($cells);
 
            $string = "<table class=\"framed grayish\" border=\"1\" cellpadding=\"5\" width=\"80%\" align=\"center\"><tr>";
 
            $string .= "<td rowspan=\"$cc\" align=\"center\">$value $from_unit</td>";
 
            $i=0;
 
            foreach ($cells as $cell) {
 
                if ($i==0) {
 
                    $string .= "<td class=\"".$cell['class']."\">".$cell['value']."</td>";
 
                    $i++;
 
                } else {
 
                    $string .= "</tr><tr><td class=\"".$cell['class']."\">".$cell['value']."</td>";
 
                }
 
            }
 
            $string .= "</tr></table>";
 
            return $string;
 
        }        
 
        
 
    }
 
}
 
 
 
 
$conv = new TP_Converter("de");
 
 
 
$conversions = array(
 
    'Temperature'=>array('base' =>'Celsius',
 
                         'conv'=>array(
 
                                            'Fahrenheit'=>array('ratio'=>1.8, 'offset'=>32),
 
                                            'Kelvin'=>array('ratio'=>1, 'offset'=>273),
 
                                            'Reaumur'=>0.8
 
                                        )
 
                        ),
 
    'Weight'    =>array('base' =>'kg',
 
                        'conv'=>array(
 
                                            'g'=>1000,
 
                                            'mg'=>1000000,
 
                                            't'=>0.001,
 
                                            'grain'=>15432,
 
                                            'oz'=>35.274,
 
                                            'lb'=>2.2046,
 
                                            'cwt(UK)'    => 0.019684,
 
                                             'cwt(US)'    => 0.022046, 
 
                                             'ton (US)'    => 0.0011023,
 
                                             'ton (UK)'    => 0.0009842,
 
                                             'Altes Pfund'=>2,
 
                                            'Zentner'=>0.02, 
 
                                            'Doppelzentner'=>0.01
 
                                     )
 
                        ),
 
    'Distance'    =>array('base' =>'km',
 
                        'conv'=>array(
 
                                            'm'=>1000,
 
                                            'dm'=>10000,
 
                                            'cm'=>100000,
 
                                            'mm'=>1000000,
 
                                             'mile'=>0.62137,
 
                                            'naut.mile'=>0.53996,
 
                                             'inch(es)'=>39370,
 
                                            'ft'=>3280.8,
 
                                            'yd'=>1093.6
 
                                        )
 
                        ),
 
    'Area'        =>array('base' =>'km²',
 
                        'conv'=>array(    
 
                                            'ha'=>100,
 
                                            'a'=>10000,
 
                                            'm²'=>pow(1000,2),
 
                                            'dm²'=>pow(10000,2),
 
                                            'cm²'=>pow(100000,2),
 
                                            'mm²'=>pow(1000000,2), 
 
                                            'mile²'=>pow(0.62137,2),
 
                                            'naut.miles²'=>pow(0.53996,2),
 
                                             'in²'=>pow(39370,2),
 
                                            'ft²'=>pow(3280.8,2),
 
                                            'yd²'=>pow(1093.6,2),
 
                                        )
 
                        ),
 
    'Volume'    =>array('base' =>'m³',
 
                        'conv'=>array(
 
                                            'in³'=>61023.6,
 
                                            'ft³'=>35.315,
 
                                            'cm³'=>pow(10,6),
 
                                             'dm³'=>1000,
 
                                            'litre'=>1000,
 
                                            'hl'=>10,
 
                                            'yd³'=>1.30795,
 
                                             'gal(US)'=>264.172,
 
                                            'gal(UK)'=>219.969,
 
                                             'pt (UK)'=>1000/0.56826, 
 
                                            'barrel petrolium'=>1000/158.99,
 
                                             'Register Tons'=>2.832, 
 
                                            'Ocean Tons'=>1.1327
 
                                        )
 
                        ),
 
    'Speed'        =>array('base' =>'kmph',
 
                        'conv'=>array(
 
                                            'mps'=>1/3.6,
 
                                            'milesph'=>0.62137,
 
                                            'kn'=>0.53996
 
                                        )
 
                        )
 
);
 
 
 
while (list($key,$val) = each($conversions)) {
 
    $conv->addConversion($val['base'], $val['conv']);
 
    $list[$key][] =$val['base'];
 
    while (list($ukey,$uval) = each($val['conv'])) {
 
        $list[$key][] = $ukey;
 
    }
 
}
 
 
$options='';
 
reset($list); 
 
while(list($key,$val) = each($list)) {
 
    $options .=  "\n\t<optgroup label=\"$key\">";
 
    while(list($ukey,$uval) = each($val)) {
 
        $options .=  "\n\t\t<option value=\"$uval\">$uval</option>";
 
    }
 
    $options .= "\n\t</optgroup>";
 
}
 
 
if (isset($_POST['from_unit']) && isset($_POST['value'])) {
 
    $_POST['value'] = $_POST['value'] + 0;
 
 
 
    print "<br>";
 
    print "<p> Direct Conversion : ". $_POST['value'] . " " .$_POST['from_unit']. " = ".$conv->convert($_POST['value'], $_POST['from_unit'], $_POST['to_unit'], 5). " ".$_POST['to_unit']."</p>";
 
    print "<br>";
 
    print "<p>Conversion Table : ";
 
    print ($conv->getTable($_POST['value'], $_POST['from_unit'], $_POST['to_unit'], 5))."</p>";
 
} else {
 
    print "<p>please specify</p>";
 
}
 
 
 
 
?>
 
<br><div class="framed">
 
<form action="<?php print $_SERVER['PHP_SELF'];?>" method="post" name="conversion<?php print $i; ?>" id="to_unit">
 
  <h3>Conversions</h3>
 
    <input name="value" type="text" id="value" value="" size="10" maxlength="10">
 
    <select name="from_unit">
 
    <option selected="selected">Not Selected</option>
 
    <?php print $options ?>
 
    </select>  to 
 
    <select name="to_unit">
 
    <option selected="selected">Not Selected</option>
 
    <?php print $options ?>
 
    </select>  
 
 
    <input type="submit" name="Submit" value="Submit">
 
  
 
</form></div>
 
</body>
 
</html>
 
 
 
 |