コード例 #1
0
ファイル: example.php プロジェクト: Kupla/finum
</pre></div>
            <br>
            We can put that thing on top of the page. <i>- Okay so how to use it?</i><br>
            <br>
            <div style="margin:0;background-color:#eee;width:100%;"><pre><?php 
$string = '<?php' . PHP_EOL . 'print $finum->fi(\'245\');' . PHP_EOL . '?>';
print htmlspecialchars($string);
?>
</pre></div><br>
            Simple? Just replace number you want instead of <i>245</i>.
            <br><br><br>
            <i><?php 
$def = 'try it';
if (isset($_GET['num'])) {
    $num = $_GET['num'];
    print "{$num} is " . $finum->fi($num);
} else {
    print $def;
}
?>
</i><br>
            <form action="#" method="get">
                <input type="number" name="num" max="999" required>
                <input type="submit" value="finum it!">
            </form>
            
            <br><br><br>
            <small style="font-size:12px;color:#aaa;">finum &copy; Fubseiz 2015.</small>
        </div>
    </body>
</html>
コード例 #2
0
ファイル: finum.php プロジェクト: Kupla/finum
 function fi($input)
 {
     $error = 'Oh no! something went wrong :/';
     // put here your custom error
     $finum = new finum();
     //intializing finum inside function, because we will need in this function
     $nums = array('nolla', 'yksi', 'kaksi', 'kolme', 'neljä', 'viisi', 'kuusi', 'seitsemän', 'kahdeksan', 'yhdeksän', 'kymmenen');
     // 0-10
     $numwords = array('toista', 'kymmentä', 'sata', 'sataa', 'tuhat', 'tuhatta');
     $input = ltrim(strval($input), '0');
     $intput = intval($input);
     $len = strlen($input);
     switch ($len) {
         case 1:
             // * 1 (1 digit)
             return $nums[$intput];
             break;
         case 2:
             // * 10 (2 digits)
             if ($input == '10') {
                 return $nums[10];
             } else {
                 if ($input[0] == '1') {
                     return $nums[intval($input[1])] . $numwords[0];
                 } else {
                     if ($input[1] == '0') {
                         return $nums[intval($input[0])] . $numwords[1];
                         //eg. 40 = neljäkymmentä
                     } else {
                         return $nums[intval($input[0])] . $numwords[1] . ' ' . $nums[intval($input[1])];
                         //eg. 45 = neljäkymmentä viisi
                     }
                 }
             }
             break;
         case 3:
             // * 100 (3 digits)
             if ($input[1] . $input[2] == '00') {
                 if ($input[0] == '1') {
                     // 100
                     return $numwords[2];
                 } else {
                     // ?00
                     return $nums[intval($input[0])] . $numwords[3];
                 }
             }
             if ($input[0] == '1') {
                 if ($input[2] == '0') {
                     //1?0
                     return $numwords[2] . ' ' . $nums[intval($input[1])] . $numwords[1];
                 } elseif ($input[1] == '1') {
                     //11?
                     return $numwords[2] . ' ' . $nums[intval($input[2])] . $numwords[0];
                 } elseif ($input[1] == '0') {
                     //10?
                     return $numwords[2] . ' ' . $nums[intval($input[2])];
                 } else {
                     return $numwords[2] . ' ' . $nums[intval($input[1])] . $numwords[1] . $nums[intval($input[2])];
                 }
             } else {
                 //??? not 1??
                 if ($input[2] == '0') {
                     //fix for "kahdeksansataa viisikymmentäNOLLA"- bug
                     return $nums[intval($input[0])] . $numwords[3] . ' ' . $finum->fi($input[1] . $input[2]);
                     //i found better solution; just let it run again
                 } else {
                     if ($input[1] == '0') {
                         return $nums[intval($input[0])] . $numwords[3] . ' ' . $finum->fi($input[2]);
                     } else {
                         return $nums[intval($input[0])] . $numwords[3] . ' ' . $finum->fi($input[1] . $input[2]);
                     }
                 }
             }
             break;
         default:
             return $error;
             return 'Sorry, but, only 3 digits are supported at this time :(  (given ' . $len . ')';
     }
 }