![]() |
Программист на php, который не чурается баз текстово-файловых, нужен... Есть база файловая, с построчными данными, из которых отчёты создать с помощью php необходимо, да вычленить список слов из одной колонки чаще всего употребляемых. Базы кусок прилагается: ¤1501762917¦31¦03.08.2017-15:21:57¦+¦20000¦8000¦2000¦2000¦2000¦2000¦285.71¦2000¦2000¦def¦Четверг¦прихо䦦¦ ¤1501762946¦31¦03.08.2017-15:22:26¦-¦-1000¦¦¦¦¦¦¦¦¦def¦Четверг¦подарк覦¦ ¤1501762992¦31¦03.08.2017-15:23:12¦-¦-730¦¦¦¦¦¦¦¦¦def¦Четверг¦едদ¦ ¤1501763042¦31¦03.08.2017-15:24:02¦-¦¦-8000¦¦¦¦¦¦8000¦¦pays¦Четверг¦pays›rf¦¦¦ ¤1501763060¦31¦03.08.2017-15:24:20¦-¦¦¦¦¦¦-100¦¦100¦¦far¦Четверг¦far›rf¦¦¦<br> ¤1501763078¦31¦03.08.2017-15:24:38¦-¦¦¦¦¦¦-900¦¦900¦¦far¦Четверг¦far›rf¦¦¦<br> ¤1501834079¦31¦04.08.2017-11:07:59¦+¦2730¦1110¦270¦270¦270¦270¦38.57¦270¦270¦def¦Пятница¦прихо䦦¦ ¤1501834104¦31¦04.08.2017-11:08:24¦-¦¦-1000¦¦¦¦¦¦¦¦pays¦Пятница¦возврат¦¦¦ ¤1501834132¦31¦04.08.2017-11:08:52¦-¦¦-110¦¦¦¦110¦¦¦¦pays¦Пятница¦pays›far¦¦¦ ¤1501835384¦31¦04.08.2017-11:29:44¦-¦¦¦¦¦¦¦¦-1270¦1270¦rf¦Пятница¦rf›target¦¦¦ ¤1501840697¦31¦04.08.2017-12:58:17¦-¦-110¦¦¦¦¦¦¦¦¦def¦Пятница¦едদ¦ ¤1501849098¦31¦04.08.2017-15:18:18¦+¦¦¦110¦¦¦¦¦¦¦now¦Пятница¦прихо䦦¦ ¤1502187944¦32¦08.08.2017-13:25:44¦-¦-7600¦¦¦¦¦¦¦¦¦def¦Вторник¦отдых¦¦¦ ¤1502187976¦32¦08.08.2017-13:26:16¦-¦¦¦¦¦¦¦¦1680¦-1680¦target¦Вторник¦target›rf¦¦¦ ¤1502188038¦32¦08.08.2017-13:27:18¦+¦¦¦¦¦¦¦¦¦750¦target¦Вторник¦прихо䦦¦ ¤1502351827¦32¦10.08.2017-10:57:07¦+¦¦¦¦¦¦¦¦¦2000¦target¦Четверг¦прихо䦦¦ ¤1502351852¦32¦10.08.2017-10:57:32¦-¦¦¦¦¦¦¦¦¦-3900¦target¦Четверг¦инструмент¦¦¦ ¤1502351878¦32¦10.08.2017-10:57:58¦-¦-300¦¦¦¦¦¦¦¦¦def¦Четверг¦едদ¦ ¤1502351899¦32¦10.08.2017-10:58:19¦-¦¦¦¦¦¦¦¦300¦-300¦target¦Четверг¦target›rf¦¦¦ ¤1502351916¦32¦10.08.2017-10:58:36¦-¦¦¦950¦¦¦¦¦¦-950¦target¦Четверг¦target›now¦¦¦ ¤1502451723¦32¦11.08.2017-14:42:03¦-¦-200¦¦¦¦¦¦¦¦¦def¦Пятница¦едদ¦ ¤1502451729¦32¦11.08.2017-14:42:09¦-¦-200¦¦¦¦¦¦¦¦¦def¦Пятница¦подарк覦¦ ¤1502451785¦32¦11.08.2017-14:43:05¦-¦¦¦¦¦¦¦¦-10000¦¦rf¦Пятница¦обучени妦¦ ¤1502701947¦33¦14.08.2017-12:12:27¦-¦-350¦¦¦¦¦¦¦¦¦def¦Понедельник¦едদ¦ ¤1502703345¦33¦14.08.2017-12:35:45¦-¦¦¦200¦¦¦¦¦¦-200¦target¦Понедельник¦target›now¦¦¦ ¤1502796990¦33¦15.08.2017-14:36:30¦-¦-50¦¦¦¦¦¦¦¦¦def¦Вторник¦проез䦦¦ ¤1502797012¦33¦15.08.2017-14:36:52¦-¦-100¦¦¦¦¦¦¦¦¦def¦Вторник¦едদ¦ ¤1502797137¦33¦15.08.2017-14:38:57¦+¦6000¦2400¦600¦600¦600¦600¦85.71¦600¦600¦def¦Вторник¦прихо䦦¦ ¤1502797158¦33¦15.08.2017-14:39:18¦-¦¦600¦¦¦¦-600¦¦¦¦far¦Вторник¦far›pays¦¦¦ ¤1502886036¦33¦16.08.2017-15:20:36¦-¦¦-3000¦¦¦¦¦¦¦¦pays¦Среда¦подарк覦¦ ¤1502886072¦33¦16.08.2017-15:21:12¦+¦5000¦2000¦500¦500¦500¦500¦71.43¦500¦500¦def¦Среда¦прихо䦦¦ ¤1502886102¦33¦16.08.2017-15:21:42¦-¦-800¦¦¦¦¦¦¦¦¦def¦Среда¦едদ¦ ¤1502886113¦33¦16.08.2017-15:21:53¦-¦-250¦¦¦¦¦¦¦¦¦def¦Среда¦проез䦦¦ ¤1503297068¦34¦21.08.2017-09:31:08¦-¦-5000¦¦¦¦¦¦¦¦¦def¦Понедельник¦возврат¦¦¦ Базы находится источник по ссылке: [url]http://airsound.ru/post_1447884000.html[/url] - там отключен правда на данный момент расчёт, но понятна суть. [IMG]http://airsound.ru/f/seven.jpg[/IMG] Отчёты нужны о денежных средств поступлении, трате и перемещении в виде графиков, с периодом дат задаваемым. Без баз MySQL, ООП и остальных наворотов лишних. Чистый php на лету. Возьмётся кто и за какую сумму? P.S. Код самописный, но адекватного программиста для доработки не нашёл пока. Все хотят использовать библиотеки... |
А можно вопрос? А почему библиотеки - это плохо? |
[quote=Добрых дел мастер;45242412]А почему библиотеки - это плохо?[/quote] Из доступных образов: библиотека это ящик с инструментами, изготовленных неизвестно кем из материала неизвестного качества. Мне же нужны только пассатижи с завода. При увеличении объёма кода возможностей уязвимости больше. Никто не говорит, что библиотеки - это плохо, они просто не нужны в данном случае, ИМХО. |
2-airsound >А чем же ВАС не устраивают Стандартные библиотеки - они тоже прямо с ЗАВОДА и проверенны МИН НЕТ :) А ОПП - это просто КЛАССЫ стандартного PHP - ну чтобы править одно место кода, а не кучу да еще в разных файлах. Практически как API. И MySQL - тоже для ЛЮДЕЙ сделан:) Не надо построчно перебирать весь файл - можно просто (одной строкой SQL) ВЫБРАТЬ строки, ГДЕ дата больше Х но меньше Y и ВСЕ!!! Данные за период у вас в КАРМАНЕ - вернее в табличке (массиве php). Дальше хош все выводи хош частично. А если ЗАПРОС немножко усложнить, тогда и СЛОВА не нужно будет считать:) |
2-airsound. А вы уверены, что распарсите входящие данные так же хорошо, как авторы библиотек? И будет в итоге какой-нибудь "четверг `rm -rf /`" Что другие, менее очевидные ошибки так же хорошо обработаете? Писать самостоятельно, когда есть уже готовое и доступное - абсолютное зло. Исключение, наверное, обучение, или создание замены чему-то готовому. |
[quote=airsound;45238829]Отчёты нужны о денежных средств поступлении, трате и перемещении в виде графиков, с периодом дат задаваемым. Без баз MySQL, ООП и остальных наворотов лишних. Чистый php на лету.[/quote]"Без баз MySQL, ООП <...> Чистый php на лету", - не вопрос. Меня другой вопрос интересует: лавинообразное снижение производительности системы будет со временем чьей головной болью? "адекватного программиста" или все же вашей?? |
[quote=AlexIT;45247506]А чем же ВАС не устраивают Стандартные библиотеки - они тоже прямо с ЗАВОДА и проверенны МИН НЕТ :)[/quote] Повторю: При увеличении объёма кода возможностей уязвимости больше. Из примеров CMS - мне не нужен дырявый вариант WordPress'a, который рушат все, кому не лень. [quote=AlexIT;45247506]А ОПП - это просто КЛАССЫ стандартного PHP - ну чтобы править одно место кода, а не кучу да еще в разных файлах. Практически как API. И MySQL - тоже для ЛЮДЕЙ сделан:) Не надо построчно перебирать весь файл - можно просто (одной строкой SQL) ВЫБРАТЬ строки, ГДЕ дата больше Х но меньше Y и ВСЕ!!! Данные за период у вас в КАРМАНЕ - вернее в табличке (массиве php). Дальше хош все выводи хош частично. А если ЗАПРОС немножко усложнить, тогда и СЛОВА не нужно будет считать:)[/quote] Согласен, что так работа будет выглядеть более внушительно, все эти моменты я прекрасно понимаю. Монстр не нужен. Краткость - сестра таланта(с), да Бритва Оккама - это лучшие варианты в моём случае. [quote=Добрых дел мастер;45247619]А вы уверены, что распарсите входящие данные так же хорошо, как авторы библиотек? И будет в итоге какой-нибудь "четверг `rm -rf /`" Что другие, менее очевидные ошибки так же хорошо обработаете? Писать самостоятельно, когда есть уже готовое и доступное - абсолютное зло. Исключение, наверное, обучение, или создание замены чему-то готовому.[/quote] Уверен, что данные, обработанные парой циклов(или другим простым способом) будут не хуже данных, обработанных стандартными библиотеками. Остальные ошибки могут быть выявлены в процессе, здесь никто не застрахован. [quote=huwox;45247964]"Без баз MySQL, ООП Чистый php на лету", - не вопрос. Меня другой вопрос интересует: лавинообразное снижение производительности системы будет со временем чьей головной болью? "адекватного программиста" или все же вашей??[/quote] Конечно моей, только база данных размером около 88 килобайт за два года(2016, 2017), думаю, лет тридцать будет точно способна работать на простых принципах и любом оборудовании, включая локальный веб-сервер на Андроиде без интернета(хоть там и есть поддержка мускула). [url=http://airsound.ru/stat.html]Мой блог(страница статистики)[/url] уже почти двенадцать лет с нормальной посещаемостью работает на текстовых базах данных и не жужжит. [b]Цены можно можно здесь указывать, не критично. Если найдётся желающий в этом мире. :)[/b] P.S. Есть ещё пара проектов для доработки, этот просто покажет целесообразность пути. |
* можно можно :) |
[quote=airsound;45248622]Цены можно можно здесь указывать, не критично. Если найдётся желающий в этом мире. :)[/quote] "Цены можно", - не вопрос, к цифрам так к цифрам. а) считаем задачи: [quote=airsound;45238829]Есть ... отчёты создать ... необходимо ... вычленить список ... употребляемых.[/quote] 1) "отчёты создать", 2) "вычленить список", - итого: две задачи в рамках одного проекта - верно? б) уточняем задачи: [quote=airsound;45238829]Отчёты нужны о денежных средств поступлении, трате и перемещении в виде графиков, с периодом дат задаваемым. Без баз MySQL, ООП и остальных наворотов лишних. Чистый php на лету.[/quote] отчеты: 1.1) о денежных средств поступлении, 1.2) трате, 1.3) перемещении, - итого: отчеты трех видов - сколько всего отчетов? графики "php на лету" - фунциклирующий пример, аналоги где смотреть? |
8-huwox > [B]1. Настройки:[/B] 1.1 Выбор периода отчёта из двух дат(по умолчанию - прошлая неделя). Возможность сохранять выбор(можно не сразу, это не горит). Данные максимума и минимума для выбора берутся из поля unix timestamp: ¤[b]1501762917[/b]¦31¦03.08.2017-15:21:57¦+¦20000¦8000¦2000¦2000¦2000¦2000¦285.71¦2 000¦2000¦def¦Четверг¦прихо䦦¦ 1.2 Выбор отчётов(галками), смотреть п.3 ниже. [B]2. Задача:[/B] - выбрать слова из всех строк базы в поле: ¤1501762917¦31¦03.08.2017-15:21:57¦+¦20000¦8000¦2000¦2000¦2000¦2000¦285.71¦2 000¦2000¦def¦Четверг¦[b]приход[/b]¦¦¦ - посчитать количество одинаковых слов и по убыванию этого количества разместить в переменной $words в виде массива: Первая строка: [b]¤приход¦еда¦отдых¦подарки¦[/b] и так далее. Вторая строка(количество слов из первой строки): [b]¤10¦7¦4¦4¦[/b] ... - сохранение данной базы в отдельный текстовый файл words.db [B]3. Отчёты[/B] в виде графиков за выбранный период: даты снизу, суммы слева и справа, автоматическое масштабирование высоты по сумме. Сумма Итого в числовом виде под графиком. [B][√] Отчёт о приходе средств[/B] - суммарное значение всех положительных цифр из базы. [B][√] Отчёт о трате средств[/B] - все минусовые значения из базы, исключая перемещения средств из конверта в конверт. [B][√] Отчёт о переводе средств[/B] - [em]все[/em] варианты перемещения из конвертов и счетов друг в друга. Это поле вида [B]target›rf[/B] всегда имеет знак [b]›[/b] За пример можно взять ту же [URL="http://airsound.ru/stat.html"]страницу статистики[/URL], первый график, но если есть покрасивее вариант, не откажусь. |
8-huwox > В личку отправил рабочий онлайн-вариант, для понимания процессов. Ещё планируются годовые отчёты со сравнением, но это уже другая история. |
Блин, в создании отчётов забыл указать, что положительные и отрицательные значения берутся из полей: Знак(подчёркнуто): ¤1501762917¦31¦03.08.2017-15:21:57¦[b][U]+[/U][/b]¦20000¦8000¦2000¦2000¦2000¦2000¦285.71¦2 000¦2000¦def¦Четверг¦прихо䦦¦ Число: ¤1501762917¦31¦03.08.2017-15:21:57¦+¦[b]20000[/b]¦8000¦2000¦2000¦2000¦2000¦285.71¦2 000¦2000¦def¦Четверг¦прихо䦦¦ Перемещения брать из полей конвертов(они разные): ¤1502703345¦33¦14.08.2017-12:35:45¦-¦¦¦[B]200[/B]¦¦¦¦¦¦[B]-200[/B]¦target¦Понедельник¦target›now¦¦¦ |
11-airsound > ok. Если телега есть, то тоже в личку. |
[quote=huwox;45252063] 11-airsound > ok. Если телега есть, то тоже в личку. [/quote] Телеги нет, если я правильно понял значение этого слова, старею, однако. |
[quote=airsound;45248622]Уверен, что данные, обработанные парой циклов(или другим простым способом) будут не хуже данных, обработанных стандартными библиотеками. Остальные ошибки могут быть выявлены в процессе, здесь никто не застрахован.[/quote] Очень напрасно. Человек должен осознавать, что делает. И то, в более крупных проектах с более проверенным кодом регулярно случаются факапы - находится какая-нибудь комбинация символов, обходящая это. >Из примеров CMS - мне не нужен дырявый вариант WordPress'a, который рушат все, кому не лень. Он дырявый только потому, что им пользуются миллионы. Самописное поделие, тем более без использования библиотек, будет спасать только дух неуловимого Джо. Но как только найдется тот, кому будет это интересно - взломано будет в минуты (если, конечно, писавший это не супер крутой профессионал). |
13-airsound > отправил в личку |
14-Добрых дел мастер > Все ужасы взлома мне известны, несколько сайтов своих, но если условия Вас не устраивают, так и разговаривать не о чем. |
да дело ведь не в условиях. Я вообще не на php пишу. Ну да ладно. |
17-Добрых дел мастер > Премного благодарен за Ваше мнение, постараюсь сделать выводы. |
Что, перевелись на Руси студенты, изучающие п ы х а, да академики, желающие тряхнуть стариной и показать удаль молодецкую, да специалисты со взором горящим? Или никто простых действий языка уже не знает? Хардкор, батенька, только хардкор! :) |
Вот вам для начала. :) [code] <?php $f='1000000000.db'; # Читаем файл: $l=file_get_contents($f); $a=explode('¤',$l); $c=count($a); # База данных, вид: # [0]timestamp¦[1]weeknum¦[2]date - time ¦[3]sign¦[4]summ¦[5]pays¦[6]one¦[7]two¦[8]three¦[9]four¦[10]day¦[11]rf¦[12]target¦[13]postval¦[14]weekday¦[15]descr¦¦¦ # 1446798902 ¦45 ¦06.11.2015-11:35:02¦+ ¦1000 ¦400 ¦100 ¦100 ¦100 ¦100 ¦14.29 ¦100 ¦100 ¦def ¦Пятница ¦приход ¦¦¦ for ($i=0; $i < $c; $i++){ $t = explode('¦',$a[$i]); ... } ?> [/code] |
актуально? |
21-migi > Да, пока только один откликнулся, но пока ещё нет результата. |
[quote=AlexIT;45247506]Не надо построчно перебирать весь файл - можно просто (одной строкой SQL) ВЫБРАТЬ строки, ГДЕ дата больше Х но меньше Y и ВСЕ!!![/quote] сначала надо разобрать приведённые в (0) строки на поля и засунуть в базу. Потом обозрев её глазами написать верификатор. а потом уже выбирать. [quote=Добрых дел мастер;45252929] Но как только найдется тот, кому будет это интересно - взломано будет в минуты (если, конечно,[/quote] будет, если на php+MySQL. В online видел взлом грузинского сайта abkhazeti.com (няп) когда в 2008г наши доблестных грузи дрючили. |
23-x0577216 > Самое смешное, что там достаточно прочитать, обработать и вывести, для любого программиста - раз плюнуть. Даже записывать в базу(текстовую либо мускульную) основные данные, а затем править их, не требуется. Но я понимаю, тут много бабла не срубишь, посему и молчат аки рыбы. Хотя при желании этот первый шаг мог бы принести программисту некоторый заработок, правда никто дальше одной халтурки смотреть не хочет. Сервис для себя, в основном, да друзья пользуются. [B]Для любопытствующих, как это работает, [url=http://service-good.ru/seven.htm]вот ссылка[/url][/B]. |
Я бы такое в портфолио не добавил. |
25 ну это смотря за сколько ;) |
а за сколько бы ни было. Если бы много денег предлагали - сделал бы под вымышленным именем, вымыл руки и забыл |
[quote=Добрых дел мастер;45386842] Я бы такое в портфолио не добавил. ... Если бы много денег предлагали - сделал бы под вымышленным именем, вымыл руки и забыл[/quote] Делал для себя, а не для продажи, попутно осваивая php в минимальном количестве, не заморачиваясь рюшечками - только чтобы работало в браузере телефона. Можете помочь улучшить - всегда рад любым предложениям, даже с библиотеками и мускулом, вдруг придёт озарение... хотя о чём это я? Разве прибыльно помогать другому сделать красивым его убогое творение? Нет. P.S. Бабло, конечно, рулит в нашей потребительской жизни, но истинное удовольствие доставляют простые вещи, "собранные на коленке" для прикола или проверки идеи. Особенно, если ими будут пользоваться бесплатно и вспоминать тебя добрым словом. |
Разве я хотел от вас хоть рубль? Мы здесь не про деньги, а так. А вы читали вообще, что я и другие писали выше? Вы игнорируете все принципы программирования. Это не "библиотеки", это хороший тон. Есть паттерны, есть еще более высокоуровневые конструкции, и им лучше следовать. Изобретая такие велосипеды вы рискуете. Безопасность этого поделия, скорее всего, на уровне плинтуса. Масштабируемость, может быть, вам и не нужна, но это не повод, чтобы оправдывать такую архитектуру. Да и подход "я умнее всех, пофиг, что там буржуи напридумывали" - плохой. Сами вы, конечно, развлекайтесь, как хотите, но я бы не хотел прикасаться к такому. Разве что за очень большие деньги и чтобы никто об этом не узнал. |
Прочел и вспомнилось: Извините, пожалуйста вам, Поможите, люди добрые! Сами мы не местные, Голодаем и скитаемся. Приехали на лечение - Украли все документи. На вокзалах, пожалуйста вам, Не хватает разместиться. На перроне дедушка лежит С рахитом и плоскостопием. Извините, что мы к вам За поможением обращаемся. Не прогневайтесь, трудовой народ. Счастья вам. Извините за это обращение. Здоровья вам и счастья. Поможите просим. Ваша земля - ваша семья. Поможите, чем сумеете ___ Московский романс -- [url]https://music.yandex.ru/album/2978546/track/25288579[/url] |
[quote=Добрых дел мастер;45396819]Разве я хотел от вас хоть рубль? Мы здесь не про деньги, а так.[/quote] Разве я предлагал делать всё бесплатно? Именно так. [quote=Добрых дел мастер;45396819]А вы читали вообще, что я и другие писали выше? Вы игнорируете все принципы программирования. Это не "библиотеки", это хороший тон.[/quote] Читал. Естественно игнорирую, я же ламер в программировании, имею право иметь своё, отличное от других, мнение. Мало кто отважился предложить сумму и способ решения, пускай даже с "хорошим тоном". Посему делаю вывод - здесь толковых программистов чуть. [quote=migi;45397170]Прочел и вспомнилось: Извините, пожалуйста вам, Поможите, люди добрые! Сами мы не местные, Голодаем и скитаемся. [/quote] Побираться не научен, тут мимо. |
[quote=airsound;45255169][0]timestamp¦[1]weeknum¦[2]date - time [/quote] какой ужас! достаточно одного поля. |
32-x0577216 > Согласен, таймстампа за глаза, только база ещё и является визуальным отражением процессов, поэтому и введены человекопонятные поля. Там ещё, как минимум, [14]weekday лишний. Но достаточно взглянуть на листинг базы, чтобы понять в какую дату/время и какая сумма приходила/тратилась/перемещалась. |
[quote=airsound;45407169]только база ещё и является визуальным отражением процессов, поэтому и введены человекопонятные поля. [/quote] база должна быть нормализована. А человек смотрит на неё посредством view. Какого хрена должны быть совершенно не нормализованные данные! Само обсуждение иррационально. |
34-x0577216 > Вы совершенно правы. В базе достаточно таймстампа, цифры со знаком, значения POST и примечания. |
Лично мне кажется, что лучше дать программисту решать задачу так как он считает нужным (умеет). А не загонять в четкие рамки "Без баз MySQL, ООП и остальных наворотов". А то это примерно как пригнать машину в сервис и сказать: "вы только чините ее исключительно молотком и ничем более" |
Дать то ему можно, но он может дойти до того что спроектировать базу на принципах NoSQL без всякой нормализации, ее там просто нет. Просють (просили) именно rdbms, хоть и не сказали явно |
37-Бенгальский > А. Точно. Тут кто-то выше писал, что "зачем пробегать ее построчно". Типа, просто запрос SQL и ВСЁ! Всё щасьте в кармане. Ну а то, что пробегать его будут все равно построчно - это типа не так? :) [quote=Бенгальский;46301798]он может дойти до того что спроектировать базу на принципах NoSQL без всякой нормализации[/quote] - покажи заказчика, который точно знает, что ему нужна нормализация 3-го или все же 5-го уровня. А то вы слишком много придаете моментам уже давно известному. |
Приветствую. На чистом php нужно сделать ? Могу взяться и за такой вариант при хорошей оплате. Специализируюсь как раз на учетных системах с отчетами. Мои контактные данные: Тел.: 8-919-888-94-94 Эл. почта: [email]dox07@mail.ru[/email] SkypeID: dox_07 |
Текущее время: 22:57. Часовой пояс GMT +3. |