ldap_exop
(PHP 7 >= 7.2.0)
ldap_exop — Выполнить расширенную операцию
Описание
$link
, string $reqoid
, string $reqdata
= null
, array $serverctrls
= null
, string &$retdata
= ?
, string &$retoid
= ?
) : mixed
Выполняет расширенную операцию для заданного link
с OID
операции reqoid
и данными
reqdata
.
Список параметров
-
link
-
Идентификатор соединения LDAP, полученный из ldap_connect().
-
reqoid
-
Идентификатор расширенной операции OID. Можно использовать одну из констант
LDAP_EXOP_START_TLS
,LDAP_EXOP_MODIFY_PASSWD
,LDAP_EXOP_REFRESH
,LDAP_EXOP_WHO_AM_I
,LDAP_EXOP_TURN
или строку с OID необходимой операции. -
reqdata
-
Данные для запроса расширенной операции. Может быть
null
для операций типаLDAP_EXOP_WHO_AM_I
. Может потребоваться закодировать BER. -
serverctrls
-
Массив управляющих констант LDAP для посылки в запросе.
-
retdata
-
Если задано, то будет заполнено данными, полученными в результате выполнения операции. Если не задано, то для получения данных можно использовать ldap_parse_exop для полученного объекта.
-
retoid
-
Если задано, то будет заполнено OID ответа. Обычно совпадает с OID запроса.
Возвращаемые значения
Если используется с retdata
, то возвращает true
или false
.
Если используется без retdata
, то возвращает идентификатор ресурса или false
.
Список изменений
Версия | Описание |
---|---|
7.3 |
Добавлена поддержка serverctrls
|
Примеры
Пример #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, $retdata);
// Вывод: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($retdata);
// То же самое, но с параметром $retdata
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
if ($success) {
var_dump($retdata);
}
ldap_close($ds);
} else {
echo "Невозможно соединиться с сервером LDAP";
}
?>
Смотрите также
- ldap_parse_result() - Извлечь информацию из результата
- ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP
- ldap_exop_whoami() - Обертка для расширенной операции WHOAMI
- ldap_exop_refresh() - Обертка для расширенной операции Refresh
- ldap_exop_passwd() - Обертка для расширенной операции PASSWD