Народ подскажите как написать парсер чисел в документе txt. В котором надо найти все числа с окончанием .00 и вот эти числа надо перевести в рубли и копейки разделив на 10000.
@EXEL лучше исходный файл прикрепи, по картинке сложнее PHP: <?php if(preg_match_all('/(\d+)\.00/', '56756.98 546456.43 56757.00 7.00 000.00', $output_array)) { echo '<pre>'; var_export($output_array); echo '</pre>'; }
Не судьба к форуму было прикрепить PHP: <?php $text = <<<EOF ┌─────────────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────────────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤ │_________1___________│_____2______│_____3______│_____4______│_____5______│_____6______│_____7______│_____8______│_____9______│_____10_____│_____11_____│ 4 З/пл по тар.ставк 13588091.00 7525091.00 140582591.00 161695773.00 5 Премия произв.рез 3939360.00 3907200.00 33922221.00 41768781.00 9 Отпускные(тек.мес 434677.00 8255870.00 11741550.00 20432097.00 11 Отпускные(след.м) 1521370.00 2688391.00 31185372.00 35395133.00 20 Hадб.за классн. 1629273.00 1629273.00 28 Надб.выс.дост.тр. 2233636.00 28796362.00 31029998.00 43 Доп.отпуск за НРД 1114866.00 3740923.00 4855789.00 45 Пpем.за экон.топл 31527.00 31527.00 48 Пpем.за выяв.мощн 1010000.00 1010000.00 55 Мат.пом.ух.в отп. 5484000.00 9204000.00 60318000.00 75006000.00 58 М/пом.жен.до3/х л 630000.00 630000.00 62 Мат.пом.к гос.пр. 1050000.00 1050000.00 63 Прочие доплаты 210000.00 210000.00 64 Пос.ух.pеб.до 3 л 3650200.00 3650200.00 70 Пос. врем.нетруд. 1828883.00 1828883.00 94 Суммы добр.страх 330000.00 110000.00 3190000.00 3630000.00 308 Доп.поощ.отп.тек 1086693.00 371622.00 7033471.00 8491786.00 309 Доп.поощ.отп.след 1486488.00 2318836.00 3805324.00 101 Аванс 8996000.00 3988000.00 89787200.00 102771200.00 102 Подоходный налог 2375229.00 3626112.00 32247050.00 38248391.00 106 Пpофсоюзные взн. 222310.00 285932.00 2595314.00 3103556.00 110 Межвыплаты 7700000.00 21050000.00 71100000.00 99850000.00 112 Кваpтплата 192200.00 192200.00 119 Пенсионный фонд 222310.00 296432.00 2601614.00 3120356.00 121 Ссуда/инд.стp-во 253999.00 253999.00 123 Ссуда мол. семье 750000.00 750000.00 125 %на индив.стр-во 124354.00 124354.00 133 Добр.пенс.страх. 330000.00 110000.00 3190000.00 3630000.00 152 Бюджет прожит.мин 30300000.00 30300000.00 Долг за работающими... Сумма к выдаче........ 8199142.00 9600688.00 96006678.00 113806508.00 Всего начислено....... 28044991.00 38957164.00 329148409.00 396150564.00 Всего удержано........ 19845849.00 29356476.00 233141731.00 282344056.00 Фонд оплаты........... 27714991.00 38847164.00 319849326.00 386411481.00 Фонд потребления...... EOF; if(preg_match_all('/(\d+)\.00/', $text, $output_array)) { foreach ($output_array[1] as $key => $value) { $value = $value/10000; echo $value."<br>"; } }
я поправил пересчёт на $value = round($value/10000, 2); Вопрос а как сделать чтобы оно находило эти цифры в тхт файле и автоматом заменяла?
Замена в самом тексте PHP: <?php $text = <<<EOF ┌─────────────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────────────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤ │_________1___________│_____2______│_____3______│_____4______│_____5______│_____6______│_____7______│_____8______│_____9______│_____10_____│_____11_____│ 4 З/пл по тар.ставк 13588091.00 7525091.00 140582591.00 161695773.00 5 Премия произв.рез 3939360.00 3907200.00 33922221.00 41768781.00 9 Отпускные(тек.мес 434677.00 8255870.00 11741550.00 20432097.00 11 Отпускные(след.м) 1521370.00 2688391.00 31185372.00 35395133.00 20 Hадб.за классн. 1629273.00 1629273.00 28 Надб.выс.дост.тр. 2233636.00 28796362.00 31029998.00 43 Доп.отпуск за НРД 1114866.00 3740923.00 4855789.00 45 Пpем.за экон.топл 31527.00 31527.00 48 Пpем.за выяв.мощн 1010000.00 1010000.00 55 Мат.пом.ух.в отп. 5484000.00 9204000.00 60318000.00 75006000.00 58 М/пом.жен.до3/х л 630000.00 630000.00 62 Мат.пом.к гос.пр. 1050000.00 1050000.00 63 Прочие доплаты 210000.00 210000.00 64 Пос.ух.pеб.до 3 л 3650200.00 3650200.00 70 Пос. врем.нетруд. 1828883.00 1828883.00 94 Суммы добр.страх 330000.00 110000.00 3190000.00 3630000.00 308 Доп.поощ.отп.тек 1086693.00 371622.00 7033471.00 8491786.00 309 Доп.поощ.отп.след 1486488.00 2318836.00 3805324.00 101 Аванс 8996000.00 3988000.00 89787200.00 102771200.00 102 Подоходный налог 2375229.00 3626112.00 32247050.00 38248391.00 106 Пpофсоюзные взн. 222310.00 285932.00 2595314.00 3103556.00 110 Межвыплаты 7700000.00 21050000.00 71100000.00 99850000.00 112 Кваpтплата 192200.00 192200.00 119 Пенсионный фонд 222310.00 296432.00 2601614.00 3120356.00 121 Ссуда/инд.стp-во 253999.00 253999.00 123 Ссуда мол. семье 750000.00 750000.00 125 %на индив.стр-во 124354.00 124354.00 133 Добр.пенс.страх. 330000.00 110000.00 3190000.00 3630000.00 152 Бюджет прожит.мин 30300000.00 30300000.00 Долг за работающими... Сумма к выдаче........ 8199142.00 9600688.00 96006678.00 113806508.00 Всего начислено....... 28044991.00 38957164.00 329148409.00 396150564.00 Всего удержано........ 19845849.00 29356476.00 233141731.00 282344056.00 Фонд оплаты........... 27714991.00 38847164.00 319849326.00 386411481.00 Фонд потребления...... EOF; echo "<pre>"; echo preg_replace_callback('/((\d+)\.00)/', function($matches) { return $matches[2]/10000; }, $text); echo "</pre>";