×

Архив тега «программирование» Страница 2

3 года назад выкладывал тут проверку ОГРН на JS, вот теперь понадобилась такая же на PHP. Так что выложу и её.

Но в случае с PHP стоит учитывать один нюанс: проверка будет работать корректно только если будет запущена на 64х-разрядной версии PHP. Почему эта же проверка на JS работает в 32х-разрядных браузерах я сказать не берусь. Не иначе как магия.

Собственно код:

Читать дальше…

Совсем недавно вся страна снова перешла на зимнее время. Казалось бы, все уже успели обновить и подправить свои конфиги и код приложений, но сегодня я обнаружил еще одно неожиданное место где потребуются изменения – это PHP.

Описание проблемы

Читать дальше…

Сейчас всё чаще и чаще для доступа к сайтам как-либо связанным с государством требуется вспоминать свой номер страхового свидетельства, он же СНИЛС. Номер этот можно проверить на корректность, также как и ИНН и ОГРН.

Формула проверки очень простая: берём первые девять цифр высчитываем сумму всех произведений каждой цифры на номер с конца. Т.е. первую цифру умножаем на 9, вторую на 8 и т.д. Полученную сумму сравниваем с последними двумя цифрами – если совпало – всё правильно. Единственный нюанс это если получилась сумма больше ста, но там надо либо сравнивать с нулём, либо с остатком от деления на 101.

Все эти манипуляции можно записать в одну функцию:

Читать дальше…

Постоянно встречается задача проверки наличия значения в массиве. В PHP для этих целей часто используют функцию in_array которая принимает два аргумента: искомое значение (или массив значений) и массив, в котором будет произведён поиск. Если значение найдено, функция возвращает true, в противном случае false.

Описание проблемы

Пока значений в массиве немного, то всё работает быстро. Но как только массив разрастается до 10 000 – 20 000 элементов, начинаются проблемы.

Один мой скрипт должен был проверять элементы на уникальность, сделать это средствами БД не получалось, т.к. массив после запроса к базе модифицировался пару раз. В массиве хранились только числовые id элементов (это пригодится для решения). В какой-то момент элементов стало больше 60 000 и скрипт стал работать по 20-30 с. на локальном хосте, что крайне медленно.

Простым замером времени исполнения участков кода (с помощью функции microtime()) что проблема именно в in_array.

Читать дальше…

Есть у нас несколько сайтов под управлением всеми любимой CMS Битрикс (так получилось). Работали они себе, никому не мешали. И тут понадобилось добавить в кратчайшие сроки небольшое взаимодействие с внешними сервисами, написанными на Си++.

Чтобы не возиться с осваиванием новых технологий мы решили воспользоваться модулем Веб-Сервисы (SOAP от Битрикса), входящим в нашу дорогущую редакцию за несколько сотен тысяч рублей (Бизнес Веб Кластер с несколькими сайтами, активно продвигаемый во всех тематических СМИ некоторое время назад) По нему и документация вроде бы была, и пара примеров в интернете.

Прочитали, скопировали пример, поправили код под наши нужды — заработало. Проблема решена — начальство довольно.

Что же случилось?

Недавно нам понадобилось добавить еще одно взаимодействие, несколько более сложное, но по сути тоже элементарное. Клиент должен был отправить нам XML с данными, которые нужно было некоторым образом обработать, а в ответ должна была вернуться информация о результатах обработки. С отправкой XML на сайт проблем не возникло, а вот с ответом ситуация сложилась печальная.

Читать дальше…
0 Проверка ИНН на JavaScript

Очень часто в разнообразных формах ввода данных требуется проверить ИНН на корректность. Делать это нужно в первую очередь на стороне клиента, чтобы избежать повторной загрузки страницы и дать возможность пользователю исправить ошибки.

Читать дальше…

Чтобы блог не пустовал, выложу тут простенький скрипт проверки на валидность ОГРН и ОГРНИП(больше на 2 знака). Вдруг кто-нибудь будет искать готовый =)

ОГРН (основной государственный регистрационный номер) — государственный регистрационный номер записи о создании юридического лица либо записи о первом представлении в соответствии с Федеральным законом Российской Федерации «О государственной регистрации юридических лиц» сведений о юридическом лице, зарегистрированном до введения в действие указанного Закона (пункт 8 Правил ведения Единого государственного реестра юридических лиц).

Подробнее

Читать дальше…

Затащить работников организации на рабочий форум задача не простая. В связи с этим очень важно учитывать пожелания по необходимому функционалу и оформлению.

Наши работники захотели получить список последних сообщений на форуме, т.к. с помощью этого списка легко можно попасть в активное обсуждение, не прибегая к поиску.

Читать дальше…

Как только появляется большое количество данных, сразу возникает необходимость их упорядочить и проанализировать. Для этих целей можно использовать разные представления информации, но мне больше всего нравятся графики, т.к. по ним проще всего понять динамику возникновения события и спрогнозировать дальнейшее его поведение.

Постановка задачи

Необходимо построить график на основе исходных данных. Для удобства анализа информации нужно продумать возможность совмещения графиков по различным показателям и просмотр значений в определённых точках.

В итоге хотелось бы получить нечто, напоминающее графики в сервисе Google Analytics (они мне очень нравятся)

Читать дальше…
Компонент «Предварительная запись» теперь доступен в Битрикс Маркетплейс.

Во многих организациях есть такая практика, как предварительная запись перед приходом на reception (или к стойке администрации, если говорить по-русски). Это очень полезная штука, т.к. она позволяет избавиться от очередей и толкучки.

При сравнительно небольшом количестве записей для управления этим процессом достаточно экселевского файлика в сетевой папке. Многие фирмы так работают и не жалуются. Но с ростом количества клиентов всплывает большое количество проблем:

  • файл может быть случайно удалён в любое время
  • невозможно отследить правки в файле, т.к. нет авторизации
  • нет никакой возможности жестко ограничивать количество записей
  • оформление записей далеко от идеального

Я решил эти проблемы написанием компонента для битрикса с использованием инфоблоков. Они позволяют хранить фактически любые данные, а система учетных записей позволяет легко разграничить права доступа. Вот что у меня получилось (рассказывать буду от большего к меньшему)

Читать дальше…
logo