</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 © Fubseiz 2015.</small> </div> </body> </html>
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 . ')'; } }