Today i will learn you new way to convert units of measurement from one unit or system to another and we will use simple php class
first you should download
the class source code:
now how we can use it?
For example, we can define the relationship between any unit of length by the number of that length per one meter.
With this ratio – which we can simply write as 100 – we can easily convert from meters to the new units. We can also convert from the unit cm back to meters by inverting the ratio – 1 / 100
.The length class makes use of this simple principal. A data file (length.xml) contains information about each unit of measurement – an abbreviation, a full name, and this ratio. When the ‘length’ is constructed, it converts it from the given unit into the SI unit for length – meters.
You can then easily retrieve this length value in any other defined unit type.
If you download the source code, it comes with a file “convert.php.” This isn’t part of the class – it just gives you an example of how to implement the class. Here’s a very simple example to show you the syntax for creating a new length instance and converting a value starting in centimeters to inches.
$len = new length(50, 'cm');
echo $len->getConversion('in') . 'in';
The length constructor takes three arguments – one required and two optional. The first argument is the value of your length (50 in this case). The second parameter is the abbreviation of the unit type (cm). If a unit is not sent, then it is assumed you’re creating a length in meters. The last argument is the path/filename to the “length.xml” data file. It’s assumed to be located in “length.xml” if a path isn’t given.
The constructor then converts that value into the standard unit – meters. getConversion() takes one argument – the new unit type. It takes the stored value (in meters) and returns it converted to the unit type you gave.Extending Length to Include Other Units
The data file included with the class is by no means intended to be exhaustive. In fact, it’s pretty limited at the moment. I will probably eventually update it with a more or less complete list of units.
However, it was created to be easily adaptable by the user. You could even make up new imaginary units (for use in a game, maybe). All you need to do is add a new entry to the xml data file with this format.