Нашел
скрипт, выводящий сумму прописью:
PHP |
<?php $_1_2[1]="одна "; $_1_2[2]="две ";
$_1_19[1]="одна "; $_1_19[2]="две "; $_1_19[3]="три "; $_1_19[4]="четыре "; $_1_19[5]="пять "; $_1_19[6]="шесть "; $_1_19[7]="семь "; $_1_19[8]="восемь "; $_1_19[9]="девять "; $_1_19[10]="десять ";
$_1_19[11]="одиннацать "; $_1_19[12]="двенадцать "; $_1_19[13]="тринадцать "; $_1_19[14]="четырнадцать "; $_1_19[15]="пятнадцать "; $_1_19[16]="шестнадцать "; $_1_19[17]="семнадцать "; $_1_19[18]="восемнадцать "; $_1_19[19]="девятнадцать ";
$des[2]="двадцать "; $des[3]="тридцать "; $des[4]="сорок "; $des[5]="пятьдесят "; $des[6]="шестьдесят "; $des[7]="семьдесят "; $des[8]="восемдесят "; $des[9]="девяносто ";
$hang[1]="сто "; $hang[2]="двести "; $hang[3]="триста "; $hang[4]="четыреста "; $hang[5]="пятьсот "; $hang[6]="шестьсот "; $hang[7]="семьсот "; $hang[8]="восемьсот "; $hang[9]="девятьсот ";
$namerub[1]="гривна "; $namerub[2]="гривни "; $namerub[3]="гривен ";
$nametho[1]="тысяча "; $nametho[2]="тысячи "; $nametho[3]="тысяч ";
$namemil[1]="миллион "; $namemil[2]="миллиона "; $namemil[3]="миллионов ";
$namemrd[1]="миллиард "; $namemrd[2]="миллиарда "; $namemrd[3]="миллиардов ";
$kopeek[1]="коп. "; $kopeek[2]="коп. "; $kopeek[3]="коп. ";
function semantic($i,&$words,&$fem,$f){ global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd; $words=""; $fl=0; if($i >= 100){ $jkl = intval($i / 100); $words.=$hang[$jkl]; $i%=100; } if($i >= 20){ $jkl = intval($i / 10); $words.=$des[$jkl]; $i%=10; $fl=1; } switch($i){ case 1: $fem=1; break; case 2: case 3: case 4: $fem=2; break; default: $fem=3; break; } if( $i ){ if( $i < 3 && $f > 0 ){ if ( $f >= 2 ) { $words.=$_1_19[$i]; } else { $words.=$_1_2[$i]; } } else { $words.=$_1_19[$i]; } } } function num2str($L){ global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek;
$s=" "; $s1=" "; $s2=" "; $kop=intval( ( $L*100 - intval( $L )*100 )); $L=intval($L); if($L>=1000000000){ $many=0; semantic(intval($L / 1000000000),$s1,$many,3); $s.=$s1.$namemrd[$many]; $L%=1000000000; }
if($L >= 1000000){ $many=0; semantic(intval($L / 1000000),$s1,$many,2); $s.=$s1.$namemil[$many]; $L%=1000000; if($L==0){ $s.="гривен "; } }
if($L >= 1000){ $many=0; semantic(intval($L / 1000),$s1,$many,1); $s.=$s1.$nametho[$many]; $L%=1000; if($L==0){ $s.="гривен "; } }
if($L != 0){ $many=0; semantic($L,$s1,$many,0); $s.=$s1.$namerub[$many]; }
if($kop > 0){ $many=0; semantic($kop,$s1,$many,1); $s.=$s1.$kopeek[$many]; } else { $s.=" 00 копеек"; } return $s; } echo num2str($c); |
Но он пишет и копейки прописью а мен нужно копейки числом.
К сожалению моих знаний не достаточно... Подскажите хотябы место в коде, где нужно что то это исправить...
Спустя 3 часа, 7 минут, 22 секунды (6.06.2009 - 16:57) glock18 написал(а):
Тебе помочь найти в коде слово "Копеек"? Или сам сообразишь как пользоваться поиском по файлу?
Спустя 2 часа, 29 минут, 59 секунд (6.06.2009 - 19:27) freed-master написал(а):
При чем тут слово копеек?
Сумма - 14.57
Сейчас скрипт пишет так: четырнадцать гривен пятьдесят семь копеек
А мне нужно: четырнадцать гривен 57 копеек
Что нужно убрать или изменить в коде что бы он не выводил копейки (число, а не слово!!!) прописью?
Спустя 43 минуты, 32 секунды (6.06.2009 - 20:10) twin написал(а):
Вот это:
PHP |
if($kop > 0){ $many=0; semantic($kop,$s1,$many,1); $s.=$s1.$kopeek[$many]; } |
замени на это:
PHP |
if($kop > 0){ $s.=$kop.' '.$kopeek[$many]; } |
Спустя 1 час, 45 минут, 16 секунд (6.06.2009 - 21:56) glock18 написал(а):
freed-master
Цитата |
При чем тут слово копеек? |
При том:
PHP |
if($kop > 0){ $many=0; semantic($kop,$s1,$many,1); $s.=$s1.$kopeek[$many]; } else { $s.=" 00 копеек"; } |
Вообще, первое правило "с чего начинаешь анализировать код, результат которого видишь". Видишь "Копейки", хочешь поправить "Копейки", значит надо искать их в коде.
twin уже привел тебе решение, и если ты посмотришь повнимательнее - это 5ью строчками выше слова "копеек".
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru