(PHP 7 >= 7.2.0, PHP 8)
ldap_exop — Выполняет расширенную операцию
$ldap
,$request_oid
,$request_data
= null
,$controls
= null
,&$response_data
= ?,&$response_oid
= ?
Выполняет расширенную операцию для заданного соединения ldap
с OID
операции request_oid
и данными
request_data
.
ldap
Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().
request_oid
Идентификатор расширенной операции OID. Можно использовать одну из констант LDAP_EXOP_START_TLS
, LDAP_EXOP_MODIFY_PASSWD
, LDAP_EXOP_REFRESH
, LDAP_EXOP_WHO_AM_I
, LDAP_EXOP_TURN
или строку с OID необходимой операции.
request_data
Данные для запроса расширенной операции. Может быть null
для операций типа
LDAP_EXOP_WHO_AM_I
. Может потребоваться закодировать BER.
controls
Массив управляющих констант LDAP для посылки в запросе.
response_data
Если задано, то будет заполнено данными, полученными в результате выполнения операции. Если не задано, то для получения данных можно использовать ldap_parse_exop для полученного объекта.
retoid
Если задано, то будет заполнено OID ответа. Обычно совпадает с OID запроса.
Если используется с response_data
, то возвращает true
или false
.
Если используется без response_data
, то возвращает идентификатор ресурса или false
.
Версия | Описание |
---|---|
8.1.0 |
Параметр ldap теперь ожидает экземпляр LDAP\Connection;
ранее ожидался ресурс (resource) ldap link .
|
7.3.0 |
Добавлена поддержка controls
|
Пример #1 Расширенная операция Whoami
<?php
$ds = ldap_connect("localhost"); // предположим, что сервер LDAP запущен локально
if ($ds) {
// Привязываемся к нужному DN
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Невозможно осуществить привязку LDAP";
exit;
}
// Вызываем WHOAMI EXOP
$r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);
// Разбираем полученный ответ
ldap_parse_exop($ds, $r, $response_data);
// Вывод: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($response_data);
// То же самое, но с параметром $response_data
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $response_data, $retoid);
if ($success) {
var_dump($response_data);
}
ldap_close($ds);
} else {
echo "Невозможно соединиться с сервером LDAP";
}
?>