Сприпт на языке PHP получения информации с LDAP аналогичный по логике работы CRM битрикс24

На работе была ситуация, системный администратор поправил некоторые поля(например должность сотрудника) в LDAP, а после обновления информации с использованием импорта пользователей из LDAP в Битрикс информация не обновилась. Поскольку в битрикс в интерфейсе импорта пользователей из LDAP не увидел возможности посмотреть какая именно информация приходит(может в битрикс и есть такая возможность, но на момент публикации этой статьи я о этом ещё не знаю) из LDAP, поэтому решил написать скрипт на PHP который будет обращаться к LDAP используя последовательность и содержание запросов которые использует Bitrix, для этого залогировал соответствующие места в кода файла для того чтобы посмотреть параметры которые передаются соответствующим стандартным функциям PHP использующихся для взаимодействия с LDAP. В листинге ниже приведён скрипт который получился в результате, его можно использовать в том числе и не для битрикс.

В листинге ниже находится некоторая промежуточная версия скрипта, в нём я уже начал выводить информацию переданную о LDAP о некоторой конкретной пользовательской записи, используя порядковый номер этой записи, так же в случаи если у записи есть поля thumbnailPhoto или jpegPhoto(обе они являются массивом и содержат ключ count который видимо хранит количество элементов в записях, в моём случаи count был равен 1 и данные единственной картинки хранились в элементе соответствующего массива под ключом 0 как для thumbnailPhoto так и для jpegPhoto) картинки содержащиеся в них сохранялись в файл, а пользователю выводился тег img в атрибуте src которого указывался адрес картинки, биты же картинки в браузер в виде текста не выводятся.

Начал переписывать цикл в приведённым выше скрипте, при этом реализовал свой алгоритм получения данных аналогичный @ldap_get_values_len, поскольку указанная функиця зачем то использует переменные $conn и $entry а так же элемент массива $attributes хотя в элементе массива $attributes есть всё необходимое для получения результата, указанный цикл и алгоритм приведён в листинге ниже. Привёл данный вариант цикла с указанным алгоритмом до написания своей функции которая будет возвращать результат аналогичный приведённому алгоритму, только без элемента массива с ключом "count".

В листинге ниже приведён код функции для замены выше описанного алгоритма в цикле.

В листинге ниже приведена функция для получения массива всех атрибутов, которые включают массивы их значений, для одной записи(entry) полученной от LDAP.

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: