Tema: Re: php skaicius ->tekstas
Autorius: gopas
Data: 2010-09-02 22:36:45
naudojau sitas, rastos kazkur internete. trukumu kolkas nepastebeta.
naudojimas sk_to_lt(skaicius);

 // convert number to words
 function sk_to_lt($l) {
  $sk1000[0] = "tūkstantis ";
  $sk1000[1] = "tūkstančiai ";
  $sk1000[2] = "tūkstančių";

  $sk1000000[0] = "milijonas ";
  $sk1000000[1] = "milijonai ";
  $sk1000000[2] = "milijonø ";

  $minus = "minus ";
  
  $skaiz = "";

  if ($l < 0) {
   $skaiz = $skaiz . $minus;
   $l1 = $l*(-1); 
  } else $l1 = $l;
  
  // skaidom skaiciu
  $lv = $l1; 
  settype($lv,"integer"); 
  
  for ($i = 8; $i >= 0; $i--) {
   $ls =(integer)( $lv / 10);
   $ll = $lv % 10;
   $ld[$i] = $ll;
   $lv = $ls; 
  }
  
  // rasom zodzius
  $skaiz = $skaiz . simtai($ld[0],$ld[1],$ld[2]);
  
  // milijonai
  if ($ld[1] <> 1 and $ld[2] == 1) $skaiz = $skaiz . $sk1000000[0];
  if ($ld[1] <> 1 and $ld[2] <> 1 and $ld[2] <> 0) $skaiz = $skaiz . $sk1000000[1];
  if ($ld[1] == 1 and $ld[2] <> 0) $skaiz = $skaiz . $sk1000000[2];
  if (($ld[0] <> 0 or $ld[1] <> 0) and $ld[2] == 0) $skaiz = $skaiz . $sk1000000[2];
  
  $skaiz = $skaiz . simtai($ld[3],$ld[4],$ld[5]);

  // tukstanciai
  if ($ld[4] <> 1 and $ld[5] == 1) $skaiz = $skaiz . $sk1000[0];
  if ($ld[4] <> 1 and $ld[5] <> 1 and $ld[5] <> 0) $skaiz = $skaiz . $sk1000[1];
  if ($ld[4] == 1 and $ld[5] <> 0) $skaiz = $skaiz . $sk1000[2];
  if (($ld[3] <> 0 or $ld[4] <> 0) and $ld[5] == 0) $skaiz = $skaiz . $sk1000[2];

  $skaiz = $skaiz . simtai($ld[6],$ld[7],$ld[8]);
  
  return ucfirst ($skaiz); 
 }
 
 // convert number to words
 function simtai($s,$d,$v) {
  $sk1[0] = "vienas ";
  $sk1[1] = "du ";
  $sk1[2] = "trys ";
  $sk1[3] = "keturi ";
  $sk1[4] = "penki ";
  $sk1[5] = "šeši ";
  $sk1[6] = "septyni ";
  $sk1[7] = "aštuoni ";
  $sk1[8] = "devyni ";
  $sk1[9] = "dešimt ";
 
  $sk11[0] = "vienuolika ";
  $sk11[1] = "dvylika ";
  $sk11[2] = "trylika ";
  $sk11[3] = "keturiolika ";
  $sk11[4] = "penkiolika ";
  $sk11[5] = "šešiolika ";
  $sk11[6] = "septyniolika ";
  $sk11[7] = "aštuoniolika ";
  $sk11[8] = "devyniolika ";
  $sk11[9] = "dvidešimt ";
 
  $sk10[0] = "dešimt ";
  $sk10[1] = "dvidešimt ";
  $sk10[2] = "trisdešimt ";
  $sk10[3] = "keturiasdešimt ";
  $sk10[4] = "penkiasdešimt ";
  $sk10[5] = "šešiasdešimt ";
  $sk10[6] = "septyniasdešimt ";
  $sk10[7] = "aštuoniasdešimt ";
  $sk10[8] = "devyniasdešimt ";
  $sk10[9] = "šimtas ";
 
  $sk100[0] = "šimtas ";
  $sk100[1] = "šimtai ";
  
  $simtz = "";
  
  if ($s <> 0) {
   $simtz = $simtz . $sk1[$s-1];
   if ($s == 1) $simtz = $simtz . $sk100[0];
   else $simtz = $simtz . $sk100[1];
  }
 
  if ($d <> 0) {
   if ($d <> 1 or $v == 0) $simtz = $simtz . $sk10[$d-1];
  }
 
  if ($v <> 0) {
   if ($d == 1) $simtz = $simtz . $sk11[$v-1];
   else $simtz = $simtz . $sk1[$v-1];
  }
 
   return $simtz;
 } 


"saulius" <saulius.trint@myeweb.com> wrote in message news:cfe07f60dd14d25fa7f2aac82438b0ee$1@computer.newsgroups.lt...
> Gal kas turi koki ir pasidalintu skriptu, kuris 
> generuoja skaiciu iki tukstanciu lygyje i teksta
> pvz: intervalas 0.03ct= 3 centai iki 25 123=dvidesimt penki tukstanciai 
> simtas dvidesim trys.
> 
> Dekui
>