
Быстрый поиск
Введите фрагмент названия статьи для поиска

Сумма прописью на PHP
07.08.2017 | Категория: Web-мастеру и не только | Автор: ManHunter

Сумма прописью на PHP
В соответствии с нормативными актами, регламентирующими порядок работы с бухгалтерскими документами, при заполнении многих унифицированных форм сумма указывается не только числами, но и прописью. Формат записи принят следующий: рублевая часть суммы указывается прописью в именительном падеже с заглавной буквы, а копейки обозначаются цифрами. При автоматической генерации документов на PHP с цифровыми выражениями проблем в принципе не возникает, а для преобразования чисел в сумму прописью я уже давно написал и использую вот такую функцию.
Читать статью целиком »
Просмотров: 3838 | Комментариев: 7

Рекурсивный обход каталогов на PHP
17.07.2017 | Категория: Web-мастеру и не только | Автор: ManHunter
Понадобилась универсальная функция для рекурсивного сканирования выбранного каталога, но не просто так, а с обработчиком найденных файлов. Вот что у меня получилось:Code (PHP) : Убрать нумерацию
- //--------------------------------------------------------------
- // Функция рекурсивного сканирования каталога
- //--------------------------------------------------------------
- // Параметры:
- // $directory - начальный каталог
- // $callback - функция для обработки найденных файлов
- //--------------------------------------------------------------
- function scan_recursive($directory, $callback=null) {
- // Привести каталог в канонизированный абсолютный путь
- $directory=realpath($directory);
- if ($d=opendir($directory)) {
- while($fname=readdir($d)) {
- if ($fname=='.' || $fname=='..') {
- continue;
- }
- else {
- // Передать путь файла в callback-функцию
- if ($callback!=null && is_callable($callback)) {
- $callback($directory.DIRECTORY_SEPARATOR.$fname);
- }
- }
- if (is_dir($directory.DIRECTORY_SEPARATOR.$fname)) {
- scan_recursive($directory.DIRECTORY_SEPARATOR.$fname, $callback);
- }
- }
- closedir($d);
- }
- }
Code (PHP) : Убрать нумерацию
- // Callback-функция, которая будет принимать имена файлов
- function scan_callback($fname) {
- echo $fname.'<br/>';
- }
- // Вывести список файлов и каталогов
- scan_recursive('C:/some_dir\subfolder/', 'scan_callback');
Просмотров: 3590 | Комментариев: 3

Преобразование массива чисел в интервалы
06.08.2016 | Категория: Web-мастеру и не только | Автор: ManHunter
По работе возникла необходимость обработать массив чисел таким образом, чтобы все последовательные значения в нем были преобразованы в интервалы. То есть массив [1, 3, 4, 5, 6, 9, 10, 15] должен превратиться в ["1", "3-6", "9-10", "15"]. Быстренько набросал вот такую функцию, может быть пригодится кому-нибудь еще.Code (PHP) : Убрать нумерацию
- // Преобразование массива чисел в интервалы
- function array_to_intervals($data=array(), $divider='-') {
- // Оставить только уникальные значения
- $data=array_unique($data);
- sort($data);
- $tmp=array();
- $begin=$end=0;
- for ($i=0; $i<count($data); $i++) {
- // Начало интервала или одиночное значение
- if ($begin==0) {
- $begin=$end=$data[$i];
- }
- if (isset($data[($i+1)])) {
- // Расширить границы интервала
- if ($data[($i+1)]==($end+1)) {
- $end++;
- }
- else {
- // Одиночное значение
- if ($begin==$end) {
- $tmp[]=$begin;
- }
- // Интервал
- else {
- $tmp[]=$begin.$divider.$end;
- }
- $begin=$end=0;
- }
- }
- }
- if (count($data)) {
- // Последнее значение
- if ($begin==$end) {
- $tmp[]=$begin;
- }
- else {
- $tmp[]=$begin.$divider.$end;
- }
- }
- return $tmp;
- }
Просмотров: 1068 | Комментариев: 0

Гномья сортировка массива на Ассемблере
23.03.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter

Гномья сортировка массива на Ассемблере
Гномья сортировка - один из методов сортировки данных, сочетающий в себе элементы алгоритмов сортировки пузырьком и сортировки вставками. Такое необычное название алгоритм получил благодаря голландскому ученому Дику Груну, детально исследовавшему этот метод сортировки. Вот как он описывает гномью сортировку в своих работах:
Гномья сортировка основана на технике, используемой обычным голландским садовым гномом. Это метод, которым садовый гном сортирует линию цветочных горшков. Он смотрит на следующий и предыдущий садовые горшки: если они в правильном порядке, он шагает на один горшок вперед, иначе он меняет их местами и шагает на один горшок назад. Граничные условия: если нет предыдущего горшка, он шагает вперед; если нет следующего горшка, он закончил.
Алгоритм находит первое место, где два соседних элемента стоят в неправильном порядке и меняет их местами. Он пользуется тем фактом, что обмен может породить новую пару, стоящую в неправильном порядке, только до или после переставленных элементов. Сортировка простая, не требует вложенных циклов и вспомогательных массивов, все данные сортируются за один проход.
Читать статью целиком »
Просмотров: 3686 | Комментариев: 6

Преобразование числа в строку с разделением на разряды
17.01.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter

Преобразование числа в строку с разделением на разряды
Если вы работаете с большими десятичными числами, то наверняка согласитесь, что число с разделением на разряды (то есть с группировкой по три символа: тысячи, миллионы и так далее) воспринимается гораздо лучше, чем просто последовательность цифр. Так проще выявлять ошибки или, например, с одного взгляда можно оценить порядок числа.
Читать статью целиком »
Просмотров: 3719 | Комментариев: 9
