Etusivulle
Sivun PHP-lähdekoodin näyttäminen
Alla on sivun lukutekstiksi.php PHP-lähdekoodi.
<?PHP include ("_funktiot.php"); ?>
<?PHP NaytaSivunAlku ("Ohjelma, joka näyttää luvun tekstinä"); ?>
<?PHP
// Luetaan get-parametri
$luku = "100 200 300 400 500 600 700 800";
$temp = $_GET["luk"];
if ($temp != "") $luku = $temp;
// Poistetaan muut merkit kuin numerot
$ulos = "";
for ($i = 0; $i < strlen($luku); $i++) {
$m = substr($luku, $i, 1);
if (substr_count("0123456789", $m) > 0) $ulos .= $m;
}
$luku = $ulos;
// Luku tuhaterottimien kanssa
$lukuerottimilla = "";
for ($i = 0; $i < strlen($luku); $i++) {
$m = substr($luku, $i, 1);
$lukuerottimilla .= $m;
$temp = strlen($luku) - $i - 1;
if ($temp % 3 == 0 && $temp > 0) $lukuerottimilla .= " ";
}
function Muodosta1_999($luku) {
// Sisään luku väliltä 1 - 999.
$numerot = array("", "yksi", "kaksi", "kolme", "neljä", "viisi", "kuusi", "seitsemän", "kahdeksan", "yhdeksän");
// Luvun numerot
$n1 = floor( $luku / 100);
$n2 = floor(($luku % 100) / 10);
$n3 = $luku % 10;
// Sadat
if ($n1 == 1) { $tulos = "sata"; }
elseif ($n1 > 1) { $tulos = $numerot[$n1] . "sataa"; }
// Kymmenet ja ykköset
if ($n2 == 0) { $tulos .= $numerot[$n3]; }
elseif ($n2 == 1 && $n3 == 0) { $tulos .= "kymmenen"; }
elseif ($n2 == 1) { $tulos .= $numerot[$n3] . "toista"; }
else { $tulos .= $numerot[$n2] . "kymmentä" . $numerot[$n3]; }
return $tulos;
}
function Muodosta1_999999($luku) {
// Sisään luku väliltä 1 - 999 999.
// Luvun puoliskot
$suuripuoli = floor($luku / 1000);
$pienipuoli = $luku % 1000;
if ($suuripuoli == 1) { $tulos = "tuhat "; }
elseif ($suuripuoli > 1) { $tulos = Muodosta1_999($suuripuoli) . "tuhatta "; }
if ($pienipuoli > 0) { $tulos .= Muodosta1_999($pienipuoli); }
return trim($tulos);
}
if (strlen($luku) > 24) {
$virhe_liiansuuri = true;
} elseif ($luku == 0) {
$tulos = "nolla";
} else {
// Lukusanat: yksikkömuoto, monikkomuoto, montako numeroa vie.
// "" = miljoonaa pienempi osuus.
$lukusanatyks = array("", "miljoona", "miljardi", "biljoona", "triljoona");
$lukusanatmon = array("", "miljoonaa", "miljardia", "biljoonaa", "triljoonaa");
$lukusanatpit = array(6, 3, 3, 6, 6);
// Tehdään luku etunollilla 24-numeroiseksi
$luku = substr("000000000000000000000000" . $luku, -24);
$tulos = "";
$numeroitatutkittu = 0; // luvun lopusta alkaen
// Käydään läpi lukusanat ja näytetään, paljonko kutakin on
for ($i = 0; $i < count($lukusanatyks); $i++) {
$pituus = $lukusanatpit[$i];
$numeroitatutkittu += $pituus;
$osa = substr($luku, -$numeroitatutkittu, $pituus);
if ($osa == 1 && $i == 0) {
$tulos = "yksi";
} elseif ($osa == 1) {
$tulos = $lukusanatyks[$i] . " " . $tulos;
} elseif ($osa > 1) {
$tulos = Muodosta1_999999($osa) . " " . $lukusanatmon[$i] . " " . $tulos;
}
}
$tulos = trim($tulos);
}
?>
Tämä ohjelma näyttää tekstinä minkä tahansa kokonaisluvun, joka on vähintään 0 ja alle kvadriljoona (10<SUP>24</SUP>).
<P>
<FORM ACTION="lukutekstiksi.php" METHOD="get">
Luku numeroina:
<BR>
<INPUT TYPE="text" NAME="luk" VALUE="<?PHP echo $lukuerottimilla; ?>" SIZE=35>
<P>
<INPUT TYPE="submit" VALUE="Näytä tekstinä">
</FORM>
<P><HR><P>
<?PHP
if ($virhe_liiansuuri) {
echo "Virhe: luku on liian suuri.";
} else {
echo $lukuerottimilla . " =<BR>\r\n";
echo $tulos;
}
?>
<P>
<A HREF="_naytaphplahdekoodi.php?sivu=lukutekstiksi.php">Tämän ohjelman PHP-lähdekoodi</A>
<?PHP NaytaSivunLoppu (); ?>
Takaisin sivulle lukutekstiksi.php
Etusivulle