PHP

Web программирование

Удаление дублей контактов в AmoCRM

Исходя из моих наблюдений, более половины пользователей AmoCRM заботятся о виде структуры их списка контактов. В основном их беспокоит наличие дублей. У пользователей, которые пользуются AmoCRM уже достаточно продолжительное время и поток их клиентов (как старых, так и новых) достаточно велик, то рано или поздно их список контактов начинает изобиловать дублями. Причем дублей становится так много, что настает пора подумать о том, как бы от этого всего изобилия начать избавляться. Дело в том, что AmoCRM не позволяет произвести удаление карточек клиента через API. А значит, придется разработать модуль, позволяющий производить удаление контактов не используя API AmoCRM. В качестве языка программирования был выбран PHP. Но для того чтобы приступить к удалению, контакты следует получить и разделить их на дубли и уникальные. Читать далее

Работа с API почтового сервиса Mandrill

Mandrill это мощный почтовый сервис от MailChimp. Он является одним из самых удобных в использовании и настройке из семейства однотипных сервисов для отправки почтовых уведомлений. Этот сервис удобно использовать не только для рассылки неких писем коммерческого характера, но и обычных уведомлений с личного сайта. Так как электронные письма, отправляемые с личных сайтов, могут попадать в спам, то это будет еще одним плюсом в пользу решения о выборе услуг данного сервиса.

Для взаимодействия сервиса Mandrill с приложением, существует API с довольно широким спектром возможностей, с основными из них нам и предстоит, познакомиться. К тому же имеется возможность использования базового (бесплатного аккаунта) позволяющего производить рассылку до 12000 писем в месяц. Читать далее

DOMPDF – экспорт данных из PHP в PDF

С помощью библиотеки DOMPDF можно создавать PDF файлы из HTML кода. Нужно только сверстать некий HTML шаблон и передать его DOMPDF и уже на выходе получить сгенерированный PDF файл. Но не надо забывать и то, что эта библиотека не движок для обработки веб-страниц, а значит и шаблоны должны быть сверстаны с использованием самых базовых средств: HTML тегов и CSS стилей. Хотя разработчики заявляют, что их библиотека поддерживает стандарты CSS 2.1 и даже некоторые свойства CSS 3. С полным их перечнем можно ознакомиться здесь. Есть, кстати, один минус – она является довольно “прожорливой” к оперативной памяти. Поэтому возможно придется задуматься об аренде виртуального выделенного сервера. Но это зависит от содержания и объема планируемых PDF документов. С другой стороны она вам может помочь сэкономить много времени на разработку различных отчетов в формате PDF. Читать далее

Компонент календаря на PHP

Существуют ситуации когда нельзя воспользоваться компонентом календаря созданном на JavaScript. Как правило, это те случаи когда требуется возможность не автоматизировать выбор даты в HTML форме, а возможность привязки неких произошедших или планируемых событий к датам в будущем. Это может быть количество новостей на определенную дату, количество заказанных товаров или совершенных покупок в интернет-магазине и т.д. Т.е. в таких случаях становится очевидной необходимость в наличии связи календаря с базой данных, для получения тех или иных сведений за определенную дату. Конечно, можно было бы создать календарь на JavaScript и для получения данных о наличии тех или иных событий использовать Ajax, но как показывает практика такое решение не является оптимальным. Поэтому данный компонент календаря будет разработан на PHP. Читать далее

Подводные камни в API Google Analytics

Попросил меня как-то раз очень давний знакомый написать ему небольшое веб-приложение по обработке отчетов полученных через API Google Analytics. Конечно сервисы Google, вещи то серьезные и соответственно ничто не предвещало никаких проблем.

Разработку предполагалось производить на PHP версии 5.2. После успешной находки пары примеров на PHP по взаимодействию с API Google Analytics и скачиванию уже разработанного клиента для работы с самим API, я начал разбираться, как и что работает. Пришлось для начала активировать сервис API Google Analytics и зарегистрировать приложение, ну а затем привязать его к своему аккаунту. Затем после небольшой модификации найденного мною примера исходного кода выяснилось, что нужна версия PHP 5.3. Хотя в документации было указано, что требуется использовать версию PHP 5.2.x или выше. Но и сотрудники службы поддержки Google заявляют тоже о необходимости использования PHP версии 5.3. Да, эта новость, конечно, не принесла радости, но все же было принято решение PHP обновить. Тем более что раньше уже было подобное желание, а тут еще и стимул появился. Читать далее

Нейронная сеть в PHP на Denwere 3

С переходом на новую версию Denwera, а соответственно вместе с ним и на новую версию PHP, возникла необходимость в обновлении некоторых расширений. В частности это коснулось и библиотеки – FANN (Fast Artificial Neural Network). Что, конечно же, особо не радовало. Поскольку как было описано в этой статье, изначальная установка данной библиотеки на Denwer 2 c версией PHP 5.2 – радости не принесла. Так как не было ясности: где искать расширение, какие нужны библиотеки и т.д. На первом месте был, конечно же, вопрос: а как обстоят дела с библиотекой FANN для PHP 5.3 под Windows? Но очень быстро был найден ресурс, где есть скомпилированные библиотеки для PHP под Windows от версий 5.3 и выше. Причем как было видно, имелся даже выбор разрядности. А также выбор типа PHP NTS(Non thread safe) или TS(Thread safe). Для того чтобы узнать тип PHP и остальную о нем информацию, необходимо воспользоваться функцией phpinfo(). Читать далее

PHP и формат передачи данных JSON

JSON (JavaScript Object Notation) – формат для обмена данными в текстовом виде. Позволяющий передавать сложные структуры данных в сериализованном виде. Этот формат передачи данных стал настолько популярен, что уже в ядро PHP начиная с версии 5.2.0, были добавлены функции по обработке данных в этом формате. А это значит, что нет необходимости в подключении дополнительных расширений. Формат данных JSON хорошо понятен человеку. Кроме того данный тип обмена данными широко используется между различными API сервисами. А при корректной разработке алгоритмов для обмена информацией, можно получить очень высокий прирост скорости чем, к примеру, при работе с данными в формате XML. Читать далее

Работа с zip-архивами в PHP

Уже долгие годы самым распространенным форматом сжатия данных, является формат ZIP. Данный формат широко используется в разработках под web. Поэтому многие языки для web-программирования имеют либо встроенные средства или возможности подключения необходимых библиотек для работы с zip-архивами.

Непосредственно в самом PHP функций для распаковки и создания zip-архивов нету. Хотя это зависит, от вариантов его сборки. Но они присутствуют в PHP расширении “php_zip”. И именно оно позволяет работать с архивными zip-файлами. Читать далее

Построение нейронной сети

Сфера искусственного интеллекта (ИИ), это уже непросто находящаяся в тени область исследования, а совокупность науки и различных технологий. Исследования в области создания ИИ идут уже не с один десяток лет. И конечно уже есть значительные продвижения. Хотя насколько они значительные, этого утверждать никто не берется. Хотя бы по той простой причине, что если говорить прямо, то граница исследования в области искусственного интеллекта закончится тогда, когда ЭВМ будет наделена разумом, отождествленным с разумом человека.

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

Читать далее

Установка нейронной сети FANN в Linux

Устанавливать библиотеку Fast Artificial Neural Network будем на операционную систему Debian (один из дистрибутивов Linux). Произвести установку библиотеки можно двумя способами.

  1. установка из репозиториев;
  2. установка всех элементов в отдельности.

Первый метод конечно облегчает немного установку, но это того не стоит. Вот с чем мне собственно пришлось столкнуться. Когда мне понадобилось произвести установку на Debian. Я нашел руководство по установке, в котором описывался первый метод. Бегло прочитав его и уже успев обрадоваться (как оказалось в дальнейшем, ненадолго), я принялся выполнять в точности все этапы по установке библиотеки, описанные в руководстве. Нюансов не возникло. Вроде библиотека установилась и расширение для PHP тоже. Казалось, что все должно было работать. Но не тут то было. Сначала я подключил нейронную сеть, которую использовал на denwere. Но результат оказался нулевым. Оказалось, что не проходила даже инициализация самой библиотеки. Перечитав еще раз руководство по установке и аналогичные руководства с других ресурсов, я понимал, что все должно работать. Но в итоге ничего не работало. Два дня у меня ушло на решение проблемы с установкой. Когда все возможные варианты (а их было немного) были исчерпаны у меня “пронеслась” мысль, а что если дистрибутив из репозитариев самой библиотеки “битый”. И как оказалось в дальнейшем, так оно и было. Поэтому рекомендую вам использовать второй метод установки, в итоге все будет работать, и ваши нервы будут в полном порядке. Читать далее