Php/docs/function.ldap-exop

提供:Dev Guides
< Php
移動先:案内検索

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";}?>

参考