Jacek
Najpierw zamieniamy daną wartość na bity, a następnie na żądaną jednostkę.
<?php
if($_POST['z_liczba']<=1048576 AND is_numeric($_POST['z_liczba'])) {
$bit = '1'; // Jeden bit to ... bitów
$bajt = '8'; // Jeden kilobajt to ... bitów
$kilobit = '1024';
$kilobajt = '8192';
$megabit = '1048576';
$megabajt = '8388608';
$gigabit = '1073741824';
$gigabajt = '8589934592';
$terabit = '1099511627776';
$terabajt = '8796093022208';
$petabit = '1125899906842624';
$petabajt = '9007199254740992';
// Jednostka z której przeliczamy
$z_jednostka = strtolower($_POST['z_jednostka']);
// Jednostka na którą przeliczmy
$na_jednostka = strtolower($_POST['na_jednostka']);
// Jesteśmy w stanie je przeliczyć?
if(isset($$z_jednostka) AND isset($$na_jednostka)) {
// Kolejno mnożenie i dzielenie liczb
$wynik = bcdiv(bcmul($_POST['z_liczba'], $$z_jednostka), $$na_jednostka);
// Formatujemy wynik (dodajemy 'ów', 'y' lub nic)
echo '<pre>'.$_POST['z_liczba'].' ';
if($_POST['z_liczba']==1) {
echo $z_jednostka;
}
elseif($_POST['z_liczba']<5) {
echo $z_jednostka.'y';
}
else
{
echo $z_jednostka.'ów';
}
if($wynik==1) {
echo ' = '.$wynik.' '.$na_jednostka;
}
elseif($wynik<5) {
echo ' = '.$wynik.' '.$na_jednostka.'y';
}
else
{
echo ' = '.$wynik.' '.$na_jednostka.'ów';
}
echo '</pre><hr>';
}
else
{
// Takich jednostek nie przeliczymy!
echo 'Nie mam takiej jednostki!<hr>';
}
}
// Długi formularz
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
Przelicz z <input type="text" name="z_liczba"> <select name="z_jednostka">
<option value="bit">bit</option>
<option value="bajt">bajt</option>
<option value="kilobit">kilobit</option>
<option value="kilobajt">kilobajt</option>
<option value="megabit">megabit</option>
<option value="megabajt">megabajt</option>
<option value="gigabit">gigabit</option>
<option value="gigabajt">bigabajt</option>
<option value="terabit">terabit</option>
<option value="terabajt">terabajt</option>
<option value="petabit">petabit</option>
<option value="petabajt">petabajt</option>
</select>
na
<select name="na_jednostka">
<option value="bit">bit</option>
<option value="bajt">bajt</option>
<option value="kilobit">kilobit</option>
<option value="kilobajt">kilobajt</option>
<option value="megabit">megabit</option>
<option value="megabajt">megabajt</option>
<option value="gigabit">gigabit</option>
<option value="gigabajt">bigabajt</option>
<option value="terabit">terabit</option>
<option value="terabajt">terabajt</option>
<option value="petabit">petabit</option>
<option value="petabajt">petabajt</option>
</select> <input type="submit" value="Przelicz"/><br/>
<small>Powyższy skrypt nie oblicza ułamków!</small>
</form>';
?>
© by Jacek Kowalski Sponsor: poszukiwany