Skip to content

Instantly share code, notes, and snippets.

@milankragujevic
Last active November 28, 2019 09:35
Show Gist options
  • Save milankragujevic/652568ba196b8b519095d3ef1208ea8d to your computer and use it in GitHub Desktop.
Save milankragujevic/652568ba196b8b519095d3ef1208ea8d to your computer and use it in GitHub Desktop.
PHP funkcija koja pretvara broj u slovni zapis broja (234 => dvestotinetridesetčetiri).
<?php
/*
* Autor: Vukašin Ćirić (shadow-bg)
* Pod pretpostavkom da je objavljeno u public domain ili pod FOSS-kompatibilnom licencom
* https://www.elitesecurity.org/p3369017
*/
function brojsrpski($para) {
$broj = number_format($para, 2, ',', '.');
if(strpos($broj, ",")) {
list($dinara, $para) = explode(",", $broj);
} else {
$dinara = $a;
$para = 0;
}
$delovi = explode(".", $dinara);
$slovima = '';
$slovima_final = '';
$prilog = '';
if($dinara == 0) {
return "nula dinara";
} elseif($dinara > 999999999) {
return "van opsega";
} else {
$jedinice = array(
'',
'jedan',
'dva',
'tri',
'četiri',
'pet',
'šest',
'sedam',
'osam',
'devet',
'deset',
'jedanaest',
'dvanaest',
'trinaest',
'četrnajest',
'petnaest',
'šesnaest',
'sedamnaest',
'osamnaest',
'devetnaest'
);
$jedinice2 = array(
'',
'jedna',
'dve',
'tri',
'četiri',
'pet',
'šest',
'sedam',
'osam',
'devet',
'deset',
'jedanaest',
'dvanaest',
'trinaest',
'četrnajest',
'petnaest',
'šesnaest',
'sedamnaest',
'osamnaest',
'devetnaest'
);
$desetice = array(
'',
'dvadeset',
'trideset',
'četrdeset',
'pedeset',
'šezdeset',
'sedamdeset',
'osamdeset',
'devedeset'
);
$stotine = array(
'',
'sto',
'dvesta',
'trista',
'četirsto',
'petsto',
'šesto',
'sedamsto',
'osamsto',
'devetsto'
);
$hiljade = array(
'',
'hiljada',
'hiljade',
'hiljade',
'hiljade',
'hiljada',
'hiljada',
'hiljada',
'hiljada',
'hiljada'
);
$milioni = array(
'',
'milion',
'miliona',
'miliona',
'miliona',
'miliona',
'miliona',
'miliona',
'miliona',
'miliona'
);
$delova = count($delovi);
for($b = 0; $b < $delova; $b++) {
if($delovi[$b] < 20) {
if($b < ($delova - 1)) {
$slovima .= $jedinice2[intval($delovi[$b])];
} else {
$slovima .= $jedinice[intval($delovi[$b])];
}
}
if(($delovi[$b] > 20) && ($delovi[$b] < 100)) {
$delovi[$b] = ltrim($delovi[$b], '0');
$slovima .= $desetice[$delovi[$b][0] - 1];
if($b < ($delova - 1)) {
$slovima .= $jedinice2[$delovi[$b][1]];
} else {
$slovima .= $jedinice[$delovi[$b][1]];
}
}
if($delovi[$b] > 100) {
$slovima .= $stotine[$delovi[$b][0]];
$tmp_desetice = substr($delovi[$b], -2);
if($tmp_desetice < 20) {
$slovima .= $jedinice[intval($tmp_desetice)];
}
if($tmp_desetice == 20) {
$slovima .= 'dvadeset';
}
if(($tmp_desetice > 20) && ($tmp_desetice < 100)) {
$tmp_desetice = ltrim($tmp_desetice, '0');
$slovima .= $desetice[$tmp_desetice[0] - 1];
if($b < ($delova - 1)) {
$slovima .= $jedinice2[$tmp_desetice[1]];
} else {
$slovima .= $jedinice[$tmp_desetice[1]];
}
}
}
if($delovi[$b] == 100) {
$slovima = 'sto';
}
if($delovi[$b] == 20) {
$slovima = 'dvadeset';
}
if($b < ($delova - 1)) {
if($delova == 3) {
if($b == 0) {
$prilog = $milioni[substr($delovi[$b], -1)];
} else {
$prilog = $hiljade[substr($delovi[$b], -1)];
}
} else {
$prilog = $hiljade[substr($delovi[$b], -1)];
}
}
$slovima_final .= $slovima . $prilog;
$slovima = '';
$prilog = '';
}
return $slovima_final;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment