Производственный календарь на PHP
Производственный календарь на PHP
Производственный календарь - это календарь, составленный с учетом выходных дней и праздников, с помощью которого составляют рабочие графики, определяют число рабочих часов за месяц и начисляют заработную плату. Конечно, этим его функции не ограничиваются, например, ваш сервис может отправлять какие-нибудь уведомления только по будним дням, или наоборот, выполнять массированную синхронизацию по выходным дням, когда нагрузка на него минимальная. Вся сложность тут в получении списка рабочих и выходных дней. Для своих проектов в качестве источника информации я использую сайт calend.ru.
Данные загружаются ежегодно в первых числах января по планировщику вот таким несложным скриптом на PHP:
Code (PHP) : Убрать нумерацию
- $ch=curl_init();
- curl_setopt($ch, CURLOPT_URL, "https://www.calend.ru/work/");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLOPT_POST, false);
- curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla 4.0");
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $result=curl_exec($ch);
- curl_close($ch);
- if (strpos($result, 'изводственный календарь на '.date('Y').' год')) {
- preg_match_all('/<td class="(day[^"]*)" day="([0-9]+)" month="([0-9]+)">/',
- $result, $matches);
- if (count($matches[3])>0) {
- $calend=array();
- foreach($matches[3] as $i=>$month) {
- if (!isset($calend[$month])) {
- $calend[$month]=array();
- }
- $calend[$month][$matches[2][$i]]=($matches[1][$i]=='day col5'?1:0);
- }
- }
- }
Просмотров: 3707 | Комментариев: 1
Метки: PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(13.01.2020 в 15:42):
Поменялась верстка и кодировка на calend.ru, исправил скрипт в соответствии с новыми обстоятельствами.
Добавить комментарий
Заполните форму для добавления комментария