CakeFest 2024: The Official CakePHP Conference

ldap_exop_refresh

(PHP 7 >= 7.3.0, PHP 8)

ldap_exop_refreshОбёртка для расширенной операции Refresh

Описание

ldap_exop_refresh(LDAP\Connection $ldap, string $dn, int $ttl): int|false

Выполняет расширенную операцию Performs и возвращает результат.

Список параметров

ldap

Экземпляр класса LDAP\Connection, который возвращает функция ldap_connect().

dn

Уникальное имя (DN) записи для которой выполняется операция.

ttl

Время в секундах (от 1 до 31557600) существования записи в каталоге, запрошенное клиентом. По истечении этого времени она будет автоматически удалена.

Возвращаемые значения

Из RFC: Поле responseTtl содержит время в секундах считаемое сервером временем жизни записи. Оно не может быть меньше запрошенного клиентом, но может быть больше. Однако, чтобы позволить серверам поддерживать каталог в относительно консистентном состоянии и для предотвращения злоупотребления клиентами постоянным продлением, серверу дозволено уменьшать запрошенное клиентом значение до, но не меньше чем, 86400 секунд (один день). В случае возникновения ошибки вернёт false.

Список изменений

Версия Описание
8.1.0 Параметр ldap теперь ожидает экземпляр класса LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию

add a note

User Contributed Notes 1 note

up
-1
Roland Gruber
5 years ago
The following workaround can be used to run the refresh command in PHP 7.2.

$dn= 'cn=user,dc=test,dc=org';
$ttl = 3600;
$data = '';
$data .= '80' . sprintf("%'.02x", strlen($dn)) . bin2hex($dn);
$data .= '81' . sprintf("%'.02x", 4) . sprintf("%'.08x", $ttl);
$data = hex2bin('30' . sprintf("%'.02x", strlen($data)/2) . $data);
$success = ldap_exop($ldapHandle, LDAP_EXOP_REFRESH, $data);
To Top