ldap_exop_refresh

(PHP 7 >= 7.3.0)

ldap_exop_refreshRefresh 拡張操作のヘルパ

説明

ldap_exop_refresh ( resource $link , string $dn , int $ttl ) : int

Refresh 拡張オペレーションを実行し、結果を返します。

パラメータ

link

ldap_connect() が返す LDAP リンク ID。

dn

リフレッシュするエンティティの識別名。

ttl

自動的に削除される前にエントリがディレクトリに存在する時間を秒単位 (1 から 31557600 の間)で指定します。

返り値

RFC から: responseTtl フィールドは、そのエントリのttlとしてサーバが選んだ時間です。 この値は、クライアントがリクエストした値よりも小さい値であってはいけませんが、 大きいのは構いません。 しかし、サーバが比較的正確にディレクトリを維持できるようにするために、 かつクライアントが動的な拡張を悪用できないようにするために、 サーバはクライアントがリクエストした ttl の値を 86400秒 (1日) まで短くすることを許可されています。 エラー時には FALSE が返されます。

参考

  • ldap_exop() - 拡張されたオペレーションを実行する

add a note add a note

User Contributed Notes 1 note

up
-1
Roland Gruber
2 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