ldap_exop
(PHP 7 >= 7.2.0)
ldap_exop — 拡張されたオペレーションを実行する
説明
ldap_exop
( resource $link
, string $reqoid
[, string $reqdata
= null
[, array $serverctrls
= null
[, string &$retdata
[, string &$retoid
]]]] ) : mixed
指定された link
で
オペレーションの OID を reqoid
で指定し、
データを reqdata
で指定して拡張されたオペレーションを実行します。
パラメータ
link
- ldap_connect() で返された、LDAP リンク識別子。
reqoid
- 拡張オペレーションリクエストのOID。
LDAP_EXOP_START_TLS
,LDAP_EXOP_MODIFY_PASSWD
,LDAP_EXOP_REFRESH
,LDAP_EXOP_WHO_AM_I
,LDAP_EXOP_TURN
のいずれか、 または送信したい操作のOIDを示す文字列。 reqdata
- 拡張オペレーションリクエストのデータ。
LDAP_EXOP_WHO_AM_I
のように、 操作によってはNULLで問題ない場合もありますし、 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"); // assuming the LDAP server is on this hostif ($ds) { // bind with appropriate dn to give update access $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret"); if (!$bind) { echo "Unable to bind to LDAP server"; exit; } // Call WHOAMI EXOP $r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I); // Parse the result object ldap_parse_exop($ds, $r, $retdata); // Output: string(31) "dn:cn=root, o=My Company, c=US" var_dump($retdata); // Same thing using $retdata parameter $success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid); if ($success) { var_dump($retdata); } ldap_close($ds);} else { echo "Unable to connect to LDAP server";}?>
参考
- ldap_parse_result() - 結果から情報を展開する
- ldap_parse_exop() - LDAP拡張オペレーションの結果オブジェクトをパースする
- ldap_exop_whoami() - WHOAMI 拡張オペレーションのヘルパ
- ldap_exop_refresh() - Refresh 拡張操作のヘルパ
- ldap_exop_passwd() - PASSWD 拡張オペレーションのヘルパ